اتوماسیون بازاریابی متن‌باز لزوماً به معنای واگذاری داده‌های شما به یک فروشنده SaaS نیست. Mautic کمپین‌های ایمیلی، ردیابی مخاطبان و پرورش سرنخ‌ها (lead nurturing) را در اختیار خودتان قرار می‌دهد. اجرای آن روی Ubuntu 24.04 نسبت به ورود به HubSpot تلاش بیشتری می‌طلبد، اما پاداش آن کنترل کامل بر پشته (stack)، هزینه‌ها و داده‌های مشتریان شماست. شما تصمیم می‌گیرید چه زمانی به‌روزرسانی کنید، چگونه مقیاس‌پذیری را مدیریت کنید و اطلاعاتتان کجا ذخیره شود.

قبل از شروع، یک دامنه را به سرور خود متصل کنید و مطمئن شوید که نسخه Ubuntu 24.04 شما حداقل ۲ گیگابایت رم دارد. Mautic سبک نیست؛ زمانی که PHP بخش‌های بزرگ (segments) را بازسازی می‌کند یا منطق کمپین را پردازش می‌کند، حافظه زیادی مصرف می‌کند. اگر قصد دارید پیام‌ها را برای هزاران مخاطب ارسال کنید، ۴ گیگابایت رم تجربه بسیار روان‌تری را فراهم می‌کند.

ساخت زیربنای 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) و پاسخ‌های لغو اشتراک را می‌خواند. GD پردازش تصاویر برای تصاویر بندانگشتی (thumbnails) را انجام می‌دهد. Mbstring و Intl مجموعه‌کاراکترها و ترجمه‌ها را در زبان‌های مختلف مدیریت می‌کنند. BCMath محاسبات ریاضی دقیقی برای امتیازدهی به سرنخ‌ها (lead scoring) و محاسبات ارز در اختیار شما قرار می‌دهد. هیچ‌کدام را نادیده نگیرید، وگرنه در میانه راه، نصب‌کننده با خطا مواجه خواهد شد.

اگر Apache از قبل نصب شده است، آن را حذف کنید. هر دو وب‌سرور به پورت‌های 80 و 443 نیاز دارند. اجرای همزمان آن‌ها باعث بروز خطاهای بی‌صدا می‌شود که عیب‌یابی آن‌ها بسیار کلافه‌کننده است. یک دستور apt remove apache2 تمیز و به دنبال آن apt autoremove می‌تواند کاملاً از این دردسر جلوگیری کند.

تنظیم PHP و پایگاه داده

نصب‌کننده و وظایف پس‌زمینه (background jobs) Mautic تشنه حافظه هستند. فایل پیکربندی PHP-FPM خود را که در مسیر /etc/php/8.3/fpm/php.ini قرار دارد باز کنید و محدودیت حافظه (memory limit) را به 512 MB افزایش دهید. اندازه آپلود را روی 50 MB تنظیم کنید تا بتوانید لیست مخاطبان و مجموعه‌دارایی‌ها (asset bundles) را بدون برخورد با محدودیت‌های ناگهانی وارد کنید. پس از ذخیره، برای اعمال تغییرات PHP-FPM را مجدداً راه‌اندازی کنید. در همین حین، مقدار post_max_size را با محدودیت آپلود خود مطابقت دهید؛ در غیر این صورت، PHP ارسال فرم‌های چندبخشی (multipart) بزرگ را رد می‌کند، حتی اگر upload_max_filesize درست به نظر برسد.

سپس، یک پایگاه داده و کاربر اختصاصی در MySQL ایجاد کنید. نام پایگاه داده را هر چه می‌خواهید بگذارید، اما نام کاربری و رمز عبور را در یک مدیریت‌کننده رمز عبور (password manager) نگه دارید. Mautic هر اقدام مخاطب، تصمیم کمپین و رویداد باز شدن ایمیل را در این جداول ذخیره می‌کند، بنابراین اعطای امتیازات گسترده به یک حساب کاربری با هدف محدود، در صورت آسیب‌پذیری بخش دیگری از سرور، میزان قرارگیری در معرض خطر را کاهش می‌دهد.

نصب Mautic و ابزارهای آن

آخرین نسخه پایدار Mautic را دانلود کرده و آن را در مسیر /var/www/html/mautic استخراج کنید. مالک دایرکتوری را به www-data تغییر دهید تا وب‌سرور بتواند فایل‌های کش، لاگ‌ها و به‌روزرسانی‌های پیکربندی محلی را بنویسد. در Ubuntu، این کار با اجرای دستور chown -R www-data:www-data /var/www/html/mautic انجام می‌شود.

همچنین باید Composer و npm روی سرور نصب باشند. Composer وابستگی‌های PHP را مدیریت می‌کند و حتی اگر از آرشیو نسخه از پیش ساخته شده استفاده کنید، بعداً هنگام افزودن پلاگین‌های مارکت‌پلیس یا اجرای به‌روزرسانی‌های دستی، به Composer نیاز خواهید داشت. npm نیز زمانی که بخواهید تم‌ها را شخصی‌سازی کنید یا دارایی‌های فرانت‌اند را از سورس بسازید، اهمیت دارد. آماده داشتن هر دو ابزار در حال حاضر، شما را از سردرگمی در زمان تکامل پروژه نجات می‌دهد.

پیکربندی Nginx و ایمن‌سازی آن

هاست مجازی (virtual host) Nginx شما باید دایرکتوری ریشه خود را به /var/www/html/mautic اشاره دهد و با index.php به عنوان ایندکس پیش‌فرض برخورد کند. درخواست‌های PHP را به سوکت یونیکس که PHP-FPM باز می‌کند (معمولاً در /run/php/php8.3-fpm.sock) هدایت کنید. یک بلوک سرور (server block) مستحکم شامل دستور try_files است که به کنترل‌کننده اصلی (front controller) بازمی‌گردد، به علاوه یک بلوک location که دسترسی به فایل‌های مخفی که با نقطه شروع می‌شوند را مسدود می‌کند. Mautic همراه با فایل‌های .htaccess مخصوص Apache ارائه می‌شود، اما Nginx آن‌ها را نادیده می‌گیرد؛ بنابراین، قوانین صریحِ مسدودسازی (deny rules) در هاست مجازی شما، پوشه‌های لاگ و موقت را خصوصی نگه می‌دارد.

قبل از اجرای نصب‌کننده مبتنی بر وب، یک گواهی TLS دریافت کنید. از Certbot همراه با پلاگین Nginx استفاده کنید تا یک گواهی رایگان Let’s Encrypt دریافت کرده و ترافیک HTTP خود را به‌طور خودکار به HTTPS تغییر دهید. Mautic با اطلاعات ورود و داده‌های مخاطبان سروکار دارد؛ بنابراین هیچ عذری برای ارائه آن‌ها از طریق متن ساده (plain text) وجود ندارد.

کران‌جاب‌ها (Cron Jobs) موتور محرک هستند

این مرحله حیاتی است. بدون وظایف زمان‌بندی شده، Mautic صرفاً داشبوردی است که هیچ کاری انجام نمی‌دهد. این اپلیکیشن اقدامات کمپین، ارسال ایمیل‌ها و بازبینی بخش‌ها (segments) را در پایگاه داده صف‌بندی می‌کند و سپس برای پردازش آن‌ها به خط فرمان متکی است.

برای کاربر Mautic، وظایف cron را جهت مدیریت این امور پس‌زمینه تنظیم کنید:

  • به‌روزرسانی بخش‌ها (segments)
  • اجرای کمپین‌ها
  • ارسال ایمیل‌ها
  • دریافت ایمیل‌های برگشتی (bounces)

در عمل، این به معنای فراخوانی دستورات کنسول Mautic در فواصل زمانی مختلف است. بازسازی بخش‌ها می‌تواند به صورت ساعتی انجام شود. محرک‌های کمپین و پردازش صف ایمیل معمولاً به بازه زمانی کوتاه‌تری نیاز دارند، یعنی بسته به حجم کار، هر پنج تا پانزده دقیقه یک‌بار. دریافت ایمیل‌های برگشتی از طریق IMAP باید به قدری منظم انجام شود که اعتبار فرستنده شما به دلیل شکایات اسپم بررسی‌نشده آسیب نبیند. خروجی syslog یا cron را زیر نظر داشته باشید تا مطمئن شوید که آن‌ها بدون خطای حافظه (memory errors) به پایان می‌رسند.

استفاده از پلتفرم

پس از تکمیل نصب و فعال شدن صحیح cron، وارد داشبورد شوید. رابط کاربری بر سه رکن اصلی تمرکز دارد: مخاطبان (contacts)، بخش‌ها (segments) و کمپین‌ها (campaigns).

از سازنده کمپین با قابلیت کشیدن و رها کردن (drag-and-drop) برای طراحی گردش کارهای ایمیلی استفاده کنید. یک مشترک جدید وارد جریان می‌شود، یک روز منتظر می‌ماند، پیام خوش‌آمدگویی دریافت می‌کند و بر اساس اینکه آیا روی لینکی کلیک کرده است یا خیر، مسیر خود را تغییر می‌دهد. در همین حال، سیستم امتیازدهی (Points system) به آرامی هنگام بازدید سرنخ‌ها از صفحات قیمت‌گذاری یا باز کردن اطلاعیه‌های محصول، به آن‌ها امتیاز می‌دهد. شما آستانه‌هایی را تعیین می‌کنید که نشان‌دهنده یک سرنخ داغ و ارزشمند برای تماس فروش است.

بخش‌ها (segments) مخاطبان را به طور خودکار بر اساس قوانینی که تعریف می‌کنید، گروه‌بندی می‌کنند. شما می‌توانید تمام کسانی را که در سی روز گذشته یک کمپین را باز کرده‌اند دسته‌بندی کنید، یا مخاطبان یک کشور خاص را جدا کنید. فرم‌های موجود در صفحات فرود (landing pages) شما مستقیماً به این بخش‌ها داده می‌فرستند. با متصل کردن این اجزا به یکدیگر، یک توالی خودکار برای پرورش مشتری (nurture sequence) خواهید داشت که به جای ارسال انبوه یک پیام یکسان برای کل لیست، به رفتار کاربر واکنش نشان می‌دهد.

کارهای اصلی پس از استقرار

راه‌اندازی Mautic روی Ubuntu 24.04 تنها شروع کار است. قبل از هر به‌روزرسانی، از پایگاه داده و دایرکتوری /var/www/html/mautic خود نسخه پشتیبان تهیه کنید. هنگام نصب پلاگین‌های جدید، لاگ‌های خطای PHP را زیر نظر داشته باشید. پس از بزرگ‌تر کردن لیست مخاطبان خود، خروجی cron را آزمایش کنید؛ زیرا وظیفه‌ای که برای ۱۰۰۰ مخاطب در چند ثانیه تمام می‌شود، ممکن است برای ۵۰,۰۰۰ مخاطب با خطای زمان (time out) مواجه شود.

خودمیزبانی (Self-hosting)، راحتیِ یک سرویس SaaS مدیریت‌شده را با داشتن کنترل کامل بر داده‌های بازاریابی خود معاوضه می‌کند. در اینجا خبری از وابستگی اجباری به فروشنده (vendor lock-in)، غافلگیری در قیمت‌گذاری به ازای هر مخاطب، یا گروگان گرفته شدن تحلیل‌های شما توسط شخص ثالث نیست. شما مالک سرور، پایگاه داده و رابطه با مخاطبان خود هستید. برای تیم‌هایی که مایل به نگهداری یک سرور لینوکس و تعدادی عبارت cron هستند، این معامله معمولاً ارزشش را دارد.