Инструкция по установке программного обеспечения для автоматизации маркетинга Mautic

Начинать нужно с подготовки окружения. Выбирать Ubuntu LTS или Debian – логично. CentOS – избыточен, Alpine – хрупок. На примере Ubuntu 22.04: минимум 2 ГБ RAM, PHP не ниже 8.1, база данных – MariaDB или MySQL, web-сервер – Apache или Nginx. Больше – лучше, но не всегда стабильнее.

Ставим зависимости. Без них ни один скрипт не сдвинется с места. Выполняем:

apt update && apt install php php-cli php-mysql php-curl php-xml php-mbstring unzip curl git mariadb-server apache2 -y

На этом этапе часто замирают. Почему? Несовместимость расширений, разнобой в версиях, конфликты модулей. Проверяйте всё командой:

php -m | grep -E 'curl|mbstring|xml|mysql'

Если что-то не отображается – допиливайте вручную. Без этого конфиг сломается на первом запуске. PHP должен быть от одного источника, не миксуйте с PPA и snap. Это ловушка.

Важно: не используйте PHP-FPM с Apache без чёткого понимания, как работает mod_event. Могут отвалиться сокеты и начнётся пляска с правами и таймаутами.

Дальше – база. Не доверяйте autoinstall. Делайте руками:


mysql -u root -p
CREATE DATABASE mautic_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mautic_user'@'localhost' IDENTIFIED BY 'сильный_пароль';
GRANT ALL PRIVILEGES ON mautic_db.* TO 'mautic_user'@'localhost';
FLUSH PRIVILEGES;

Файлы проекта лучше тянуть напрямую из GitHub, а не полагаться на дистрибутивные пакеты. Они устаревшие.


cd /var/www
git clone https://github.com/mautic/mautic.git
cd mautic
composer install --no-dev --optimize-autoloader

Если composer вываливается с ошибками – проверяйте memory_limit и версию Composer. Она должна быть не ниже 2. Хостинг с этим часто косячит.

Настройка Apache: стандартная виртуалка не подойдёт. Меняйте DocumentRoot на /var/www/mautic/public. Добавьте права:


chown -R www-data:www-data /var/www/mautic
chmod -R 755 /var/www/mautic

Помните: web-сервер не должен иметь права на запись в корень проекта. Только в var, cache, logs.

И наконец – cron. Без него всё бессмысленно. Вот пример базового набора:


* * * * * www-data php /var/www/mautic/bin/console mautic:segments:update
*/5 * * * * www-data php /var/www/mautic/bin/console mautic:campaigns:trigger
0 * * * * www-data php /var/www/mautic/bin/console mautic:emails:send

Смело проверяйте логи. Без них вы не поймёте, что происходит. tail -f /var/log/apache2/error.log – ваш новый друг.

Читайте также:  Шаги для установки и настройки сервера OpenLDAP и FreeRadius

Вот и всё. Просто? Нет. Рабоче? Да. Только так и можно добиться предсказуемости и контроля.

Подготовка серверного окружения для установки Mautic

Сразу к делу: минимальная конфигурация – 2 CPU, 4 GB RAM, SSD, Debian 11 или Ubuntu 22.04 LTS. Хостинг? Только с root-доступом. Shared-хостинг? Забыть.

Обновить пакеты. Без актуального окружения ловить нечего:

apt update && apt upgrade -y

Понадобится веб-сервер. Apache или Nginx. Вариант на CentOS? Тогда nginx + php-fpm. Пример установки на Debian:

apt install nginx php-fpm php-cli php-curl php-mysql php-xml php-mbstring php-zip php-intl php-imap unzip curl -y

PHP – только >=8.1. Всё, что ниже, роняет совместимость. Проверка версии:

php -v

Расширения. Без php-xml и php-curl работать не будет. Имейте это в виду. И php-imap тоже – иначе нет email parsing.

MySQL или MariaDB? Поддержка одинаковая, но на Ubuntu быстрее раскатывается MariaDB:

apt install mariadb-server -y

Создание базы данных – без GUI, только CLI:


mysql -u root -p
CREATE DATABASE mautic_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mautic_user'@'localhost' IDENTIFIED BY 'сильный_пароль';
GRANT ALL PRIVILEGES ON mautic_db.* TO 'mautic_user'@'localhost';
FLUSH PRIVILEGES;

Важно настроить PHP правильно. max_execution_time минимум 300. memory_limit не менее 512M. upload_max_filesize – 50M и выше. Где это всё?

nano /etc/php/8.1/fpm/php.ini

Важно! Пропустить настройку php.ini – значит получить белый экран вместо интерфейса. Без логов. Без ошибок. Только боль.

Права на директории. Никогда – повторяю, никогда – не запускайте веб-сервер от root. Только www-data. Пример:

chown -R www-data:www-data /var/www/html

Ограничения на уровне сервера. UFW, firewalld или iptables – не имеет значения, но порт 80 и 443 должен быть открыт:

Читайте также:  Как безопасно и автоматически удалить временные файлы в Linux

ufw allow 'Nginx Full'

Проверка nginx:

systemctl restart nginx && systemctl status nginx

Внимание! Прежде чем продолжать, проверьте, доступен ли сервер по IP или домену. Без этого дальнейшие шаги – впустую.

SSL? Только через Let’s Encrypt. Без HTTPS вебхуки не работают. Certbot ставится так:

apt install certbot python3-certbot-nginx -y

И сразу выпуск сертификата:

certbot --nginx -d example.com -d www.example.com

Проверка всего окружения перед переходом к следующему этапу. Ошибки на этом этапе – это потом бессонные ночи и редактирование конфигов вручную.

Развертывание Mautic с использованием Composer и настройка базы данных

Сразу: без Composer даже не пытайтесь. Официальный способ клонирования репозитория с GitHub – мина замедленного действия. Composer – единственно вменяемый способ получить стабильную сборку.

Убедитесь, что установлены PHP 8.1+, Composer, MySQL/MariaDB, а также необходимые расширения: pdo_mysql, mbstring, openssl, zip, intl, xml, curl, gd.

Важно: проверяйте совместимость PHP и зависимостей заранее. Несовпадение версий – гарантия того, что установка встанет колом.

Создайте директорию:

mkdir -p /var/www/mautic && cd /var/www/mautic

Выполните загрузку через Composer:

composer create-project mautic/recommended-project:5.x .

Точка в конце – критична. Без неё установка окажется в поддиректории. Результат: поломанный автолоад и мучения при настройке виртуального хоста.

Далее права:

chown -R www-data:www-data /var/www/mautic
find var -type d -exec chmod 755 {} \;
find var -type f -exec chmod 644 {} \;

Теперь база. Создайте отдельную БД и пользователя с ограниченными правами:

mysql -u root -p
CREATE DATABASE mautic_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mautic_user'@'localhost' IDENTIFIED BY 'сильный_пароль';
GRANT ALL PRIVILEGES ON mautic_db.* TO 'mautic_user'@'localhost';
FLUSH PRIVILEGES;

Внимание! Никогда не используйте root-пользователя БД в проде. Это дыра шириной с автобус.

Перейдите по адресу в браузере. Убедитесь, что веб-сервер корректно отрабатывает index.php. Если видите белый экран – смотрите error_log, чаще всего причина в правках .env.local или отсутствующем PHP-расширении.

Читайте также:  Безопасен ли Linux для приложений?

Настройка .env.local пример:


APP_ENV=prod
APP_DEBUG=0
DATABASE_URL="mysql://mautic_user:сильный_пароль@127.0.0.1:3306/mautic_db"

После ввода данных и завершения мастера установки – сразу создайте бэкап. Один сбой миграции – и вы вытираете таблицы руками.

Развернули? Отлично. Теперь настройка CRON-задач, без них всё встанет. Но это уже другая история.

Конфигурация cron-задач для корректной работы автоматизации

Запуск планировщика по расписанию – не опция, а требование. Без него обработка кампаний, отправка писем и обновление сегментов встанут колом. Не запускается cron – считай, ничего не работает. Абсолютно.

Минимальный набор задач в crontab для пользователя веб-сервера (обычно www-data или apache):


*/5 * * * * php /var/www/html/path/to/bin/console mautic:segments:update
*/10 * * * * php /var/www/html/path/to/bin/console mautic:campaigns:update
*/15 * * * * php /var/www/html/path/to/bin/console mautic:campaigns:trigger
0 * * * * php /var/www/html/path/to/bin/console mautic:emails:send

Команды segments:update и campaigns:update – это мозг. Без них не пересчитываются условия, не активируются события. Каждые 5-10 минут – не меньше. Хотите живую систему – делайте часто.

Внимание! Не используйте root для запуска cron. Только пользователь веб-сервера. Нарушите права – получите кучу ошибок на выходе.

Если используете systemd-таймеры – хорошо, только убедитесь, что окружение содержит все переменные. PATH, HOME и PHP_BINARY – критичны. Без них скрипты падают в тишину.

Отправка писем раз в час? Нонсенс. Делайте чаще. Раз в 5 минут. Или вручную накапливайте очередь и рассылайте командой:


php /var/www/html/path/to/bin/console mautic:email:process

Логи cron пишите в файл. Сразу. Иначе искать причину будете в темноте.


*/5 * * * * php /var/www/html/path/to/bin/console mautic:segments:update >> /var/log/mautic/cron.log 2>&1

CentOS? Используйте /etc/cron.d. Debian и Ubuntu – crontab -e. Arch Linux? Пакет cronie и проверка запуска systemctl status cronie.

Важно помнить: каждый планировщик должен завершаться без ошибок. exit 0 в конце не обязателен, но пустой stderr обязателен. Следите.

Тестируйте руками. Не доверяйте системе. Запустите каждую команду из cron вручную. Ошибка в пути? PHP не там? Права не те? Выявите сразу. Не на проде.

Важно! Задержка выполнения кампании почти всегда вызвана неправильно настроенным расписанием cron или конфликтами прав доступа.

Никаких GUI-интерфейсов для cron. Только консоль. Только контроль. Любая визуализация – медленная смерть администрированию.