أتمتة التسويق مفتوحة المصدر لا تعني بالضرورة التخلي عن بياناتك لصالح مزود خدمة SaaS. يضع Mautic حملات البريد الإلكتروني، وتتبع جهات الاتصال، ورعاية العملاء المحتملين (lead nurturing) تحت سيطرتك الكاملة. يتطلب تشغيله على Ubuntu 24.04 جهداً أكبر من مجرد تسجيل الدخول إلى HubSpot، لكن المكافأة هي التحكم الكامل في بنيتك التقنية، وتكاليفك، وبيانات عملائك. أنت من يقرر متى يتم التحديث، وكيفية التوسع، وأين تُخزن معلوماتك.

قبل البدء، قم بتوجيه نطاق (domain) إلى خادمك وتأكد من أن نسخة Ubuntu 24.04 لديك تحتوي على ذاكرة وصول عشوائي (RAM) لا تقل عن 2 جيجابايت. Mautic ليس خفيف الوزن؛ حيث يستهلك PHP الذاكرة عند إعادة بناء الأجزاء (segments) الكبيرة أو معالجة منطق الحملات. إذا كنت تخطط للإرسال إلى آلاف جهات الاتصال، فإن توفير 4 جيجابايت سيجعل التجربة أكثر سلاسة بكثير.

بناء أساس LEMP

يتطلب Mautic حزمة LEMP: Nginx و MySQL و PHP. في Ubuntu 24.04، إصدار PHP الافتراضي هو 8.3، وهو يعمل بشكل جيد مع إصدارات Mautic الحالية. ابدأ بتحديث قائمة الحزم لديك، ثم قم بتثبيت Nginx و MySQL Server. بعد ذلك، قم بتثبيت PHP-FPM والامتدادات المحددة التي يحتاجها Mautic:

  • php-fpm
  • php-mysql
  • php-imap
  • php-curl
  • php-gd
  • php-xml
  • php-mbstring
  • php-zip
  • php-intl
  • php-bcmath

كل امتداد يؤدي غرضاً حقيقياً. يقوم امتداد IMAP بقراءة رسائل الارتداد (bounce messages) وردود إلغاء الاشتراك. ويتولى GD معالجة الصور لإنشاء الصور المصغرة (thumbnails). بينما تدير mbstring و Intl مجموعات الأحرف والترجمات عبر اللغات المختلفة. أما BCMath فيمنحك عمليات حسابية دقيقة لتسجيل نقاط العملاء المحتملين (lead scoring) وحسابات العملات. لا تتخطَّ أيًا منها، وإلا سيظهر لك المثبت خطأً في منتصف العملية.

إذا كان Apache مثبتاً بالفعل، فقم بإزالته. فكلا خادمي الويب يرغبان في استخدام المنفذين 80 و 443. تشغيلهما جنباً إلى جنب يتسبب في فشل صامت يصعب تصحيحه (debug). إن تنفيذ أمر apt remove apache2 متبوعاً بـ apt autoremove يمنع هذا الصداع تماماً.

ضبط PHP وقاعدة البيانات

يستهلك مثبت Mautic والمهام التي تعمل في الخلفية قدراً كبيراً من الذاكرة. افتح ملف تكوين PHP-FPM الموجود في /etc/php/8.3/fpm/php.ini وارفع حد الذاكرة (memory limit) إلى 512 ميجابايت. اضبط حجم الرفع (upload size) على 50 ميجابايت لتتمكن من استيراد قوائم جهات الاتصال وحزم الأصول دون مواجهة قيود مفاجئة. بعد الحفظ، أعد تشغيل PHP-FPM لتطبيق التغييرات. وبينما تقوم بذلك، ارفع قيمة post_max_size لتتطابق مع حد الرفع الخاص بك؛ وإلا سيرفض PHP عمليات إرسال النماذج الكبيرة (multipart form submissions) حتى لو بدا upload_max_filesize صحيحاً.

بعد ذلك، قم بإنشاء قاعدة بيانات ومستخدم MySQL مخصصين. يمكنك تسمية قاعدة البيانات كما تشاء، ولكن احتفظ باسم المستخدم وكلمة المرور في مدير كلمات مرور. يخزن Mautic كل إجراء لجهة اتصال، وكل قرار حملة، وكل حدث فتح بريد إلكتروني في هذه الجداول، لذا فإن منح صلاحيات واسعة لحساب مخصص لغرض واحد يقلل من مخاطر التعرض للاختراق في حال تعرض شيء آخر على الخادم للاختراق.

تثبيت Mautic وأدواته

قم بتنزيل أحدث إصدار مستقر من Mautic واستخرجه في /var/www/html/mautic. قم بتعيين مالك الدليل إلى www-data حتى يتمكن خادم الويب من كتابة ملفات التخزين المؤقت (cache)، والسجلات (logs)، وتحديثات التكوين المحلية. في Ubuntu، يعني ذلك تشغيل chown -R www-data:www-data /var/www/html/mautic.

ستحتاج أيضاً إلى تثبيت Composer و npm على الخادم. يقوم Composer بحل تبعيات PHP، وحتى لو قمت بالنشر من أرشيف الإصدار الجاهز، فستحتاج إلى Composer لاحقاً عند إضافة ملحقات المتجر (marketplace plugins) أو تشغيل التحديثات اليدوية. أما npm فهو مهم إذا كنت ترغب في تخصيص السمات (themes) أو بناء أصول الواجهة الأمامية (frontend assets) من المصدر. وجود كلا الأداتين جاهزتين الآن سيجنبك الارتباك عندما يتطور المشروع.

تكوين Nginx وتأمينه

يجب أن يشير المضيف الافتراضي (virtual host) لـ Nginx دليل الجذر (root directory) الخاص به إلى /var/www/html/mautic ويعامل index.php كفهرس افتراضي. قم بتوجيه طلبات PHP إلى Unix socket الذي يفتحه PHP-FPM، وعادة ما يكون في /run/php/php8.3-fpm.sock. يتضمن كتلة الخادم (server block) القوية توجيه try_files الذي يعود إلى المتحكم الأمامي (front controller)، بالإضافة إلى كتلة موقع (location block) تمنع الوصول إلى الملفات المخفية التي تبدأ بنقطة. يأتي Mautic مع ملفات .htaccess مخصصة لـ Apache، لكن Nginx يتجاهلها، لذا فإن قواعد المنع الصريحة في المضيف الافتراضي الخاص بك ستحافظ على خصوصية سجلاتك ومجلداتك المؤقتة.

قبل تشغيل المثبت المستند إلى الويب، احصل على شهادة TLS. استخدم Certbot مع ملحق Nginx للحصول على شهادة Let’s Encrypt مجانية وتحويل حركة مرور HTTP إلى HTTPS تلقائياً. يتعامل Mautic مع بيانات الاعتماد وبيانات جهات الاتصال؛ لذا لا يوجد عذر لتقديمها عبر نص عادي (plain text).

مهام Cron هي المحرك

هذه الخطوة غير قابلة للتفاوض. فبدون المهام المجدولة، ستكون Mautic مجرد لوحة تحكم لا تفعل شيئاً. يقوم التطبيق بوضع إجراءات الحملات، وإرسال رسائل البريد الإلكتروني، وإعادة حساب الشرائح في قائمة انتظار داخل قاعدة البيانات، ثم يعتمد على سطر الأوامر (command line) لمعالجتها.

قم بإعداد مهام cron لمستخدم Mautic للتعامل مع هذه المهام الخلفية:

  • تحديث الشرائح
  • تشغيل الحملات
  • إرسال رسائل البريد الإلكتروني
  • جلب رسائل الارتداد (bounces)

من الناحية العملية، يعني هذا استدعاء أوامر وحدة التحكم (console commands) الخاصة بـ Mautic على فترات زمنية مختلفة. يمكن تشغيل إعادة بناء الشرائح كل ساعة. أما مشغلات الحملات ومعالجة قائمة انتظار البريد الإلكتروني، فغالباً ما تحتاج إلى نافذة زمنية أضيق، أي كل خمس إلى خمس عشرة دقيقة اعتماداً على حجم العمل. كما يجب أن يتم جلب رسائل الارتداد عبر IMAP بانتظام كافٍ لضمان عدم تضرر سمعة المرسل لديك بسبب شكاوى البريد العشوائي (spam) غير المفحوصة. راقب سجل النظام (syslog) أو مخرجات cron للتأكد من انتهائها دون أخطاء في الذاكرة.

استخدام المنصة

بمجرد اكتمال التثبيت وعمل cron بسلاسة، قم بتسجيل الدخول إلى لوحة التحكم. ترتكز الواجهة على ثلاث ركائز أساسية: جهات الاتصال (contacts)، والشرائح (segments)، والحملات (campaigns).

استخدم أداة بناء الحملات القائمة على السحب والإفلات لتصميم سير عمل البريد الإلكتروني. يدخل المشترك الجديد في المسار، وينتظر يوماً، ثم يتلقى رسالة ترحيب، ويتفرع المسار بناءً على ما إذا كان قد نقر على رابط أم لا. وفي الوقت نفسه، يقوم نظام النقاط (Points system) بتسجيل نقاط العملاء المحتملين (leads) بهدوء عندما يزورون صفحات الأسعار أو يفتحون إعلانات المنتجات. وأنت من يحدد العتبات التي تشير إلى وجود عميل محتمل "ساخن" يستحق مكالمة مبيعات.

تقوم الشرائح بتجميع جهات الاتصال تلقائياً بناءً على القواعد التي تحددها. قد تقوم بتقسيم كل من فتح حملة خلال الثلاثين يوماً الماضية، أو عزل جهات الاتصال في بلد معين. وتغذي النماذج (Forms) الموجودة على صفحات الهبوط الخاصة بك هذه الشرائح مباشرة. اربط هذه الأجزاء معاً وستحصل على تسلسل رعاية (nurture sequence) مؤتمت يتفاعل مع السلوك بدلاً من إرسال نفس الرسالة إلى قائمتك بأكملها.

العمل الحقيقي بعد النشر

إن تشغيل Mautic على Ubuntu 24.04 هو مجرد البداية. قم بعمل نسخة احتياطية لقاعدة البيانات ولمجلد /var/www/html/mautic قبل كل تحديث. وراقب سجلات أخطاء PHP عند تثبيت إضافات (plugins) جديدة. كما يجب اختبار مخرجات cron بعد توسيع قائمة جهات الاتصال لديك، لأن المهمة التي تنتهي في ثوانٍ عند وجود ألف جهة اتصال قد تواجه مهلة زمنية (time out) عند وصول العدد إلى خمسين ألفاً.

الاستضافة الذاتية (Self-hosting) تضحي براحة البرمجيات كخدمة (SaaS) المدارة مقابل السيادة على بياناتك التسويقية. لا يوجد تقيد بمورد معين (vendor lock-in)، ولا مفاجآت في التسعير لكل جهة اتصال، ولا طرف ثالث يحتجز تحليلاتك كرهينة. أنت تملك الخادم، وقاعدة البيانات، والعلاقة مع جمهورك. بالنسبة للفرق المستعدة لصيانة جهاز Linux ومجموعة من تعبيرات cron، فإن هذه المقايضة تستحق العناء عادةً.