Развёртывание Mautic на VPS для автоматизации маркетинга и email-рассылок
TL;DR
В этом подробном руководстве мы шаг за шагом настроим Mautic — мощную платформу для автоматизации маркетинга и email-рассылок — на собственном виртуальном приватном сервере (VPS). Вы научитесь устанавливать все необходимые компоненты (Nginx, PHP, MySQL), конфигурировать Mautic, обеспечивать его безопасность с помощью HTTPS и настраивать систему бэкапов. В результате вы получите полностью функциональную, контролируемую вами систему для управления маркетинговыми кампаниями, лидогенерации и автоматических рассылок, не привязанную к сторонним SaaS-решениям.
- Установка и настройка Mautic 5.x на Ubuntu 24.04/26.04.
- Использование Nginx, PHP 8.3/8.4 и MySQL 8.0 для оптимальной производительности.
- Обеспечение безопасности сервера с помощью UFW, Fail2Ban и SSH-ключей.
- Настройка HTTPS с помощью Certbot (Let's Encrypt) для безопасного доступа.
- Создание автоматизированных бэкапов базы данных и файлов Mautic.
- Решение типичных проблем и рекомендации по масштабированию.
Что мы настраиваем и зачем
Мы будем разворачивать Mautic, мощную Open Source платформу для автоматизации маркетинга, на вашем собственном VPS-сервере. Mautic позволяет автоматизировать email-рассылки, управлять лидами, создавать лендинги, формы, сегментировать аудиторию и отслеживать поведение пользователей на сайте. Это полноценный инструмент для inbound-маркетинга, который может заменить дорогостоящие коммерческие решения, такие как HubSpot, ActiveCampaign или Mailchimp, особенно если вам нужен полный контроль над данными и функциональностью.
В итоге, по завершении этого туториала, вы получите готовую к работе инсталляцию Mautic, доступную по защищенному HTTPS-соединению. Вы сможете сразу же приступить к созданию своих первых кампаний, форм и рассылок, имея полную уверенность в том, что ваша система настроена оптимально и безопасно.
Существуют два основных подхода к использованию Mautic: облачные управляемые решения (Mautic Cloud, или сторонние хостинги, предлагающие Mautic как сервис) и самостоятельное развертывание (self-hosted) на VPS или выделенном сервере. Облачные решения удобны для быстрого старта, так как провайдер берет на себя все заботы по установке, обновлению и обслуживанию. Однако они часто имеют ограничения по функциональности, объему данных или количеству контактов, а также могут быть значительно дороже при масштабировании.
Самостоятельное развертывание на VPS, как мы будем делать, дает вам полный контроль. Вы сами выбираете конфигурацию сервера, управляете обновлениями, устанавливаете любые плагины и интеграции, и, что самое важное, полностью владеете своими данными. Это идеальный вариант для разработчиков, solo-фаундеров SaaS-проектов или компаний, которым требуется максимальная гибкость, конфиденциальность данных и оптимизация затрат в долгосрочной перспективе.
Какой VPS-конфиг нужен под эту задачу
Выбор правильной конфигурации VPS критически важен для стабильной и быстрой работы Mautic, особенно при росте вашей базы контактов и активности кампаний. Mautic — это PHP-приложение, которое интенсивно использует базу данных и требует достаточно ресурсов для обработки задач по рассылке и сегментации.
Минимальные требования для Mautic (на начало 2026 года):
- Процессор (CPU): Минимум 2 ядра. Для небольших проектов (до 10 000 контактов, несколько активных кампаний) этого будет достаточно. Для более крупных инсталляций лучше ориентироваться на 4 ядра и выше.
- Оперативная память (RAM): Минимум 4 ГБ. Mautic, PHP-FPM и MySQL могут быть достаточно прожорливыми. 4 ГБ позволят комфортно работать с базой до 20 000-30 000 контактов. Для более активных кампаний или больших баз данных рекомендуется 8 ГБ.
- Диск (Storage): Минимум 80 ГБ NVMe SSD. SSD-накопители значительно ускоряют работу базы данных и загрузку файлов Mautic. NVMe обеспечивает максимальную производительность. 80 ГБ достаточно для самой системы, Mautic и нескольких десятков тысяч контактов с их активностями. Если вы планируете хранить много изображений, видео или других медиафайлов, потребуется больше места.
- Сеть (Network): Порт 1 Гбит/с с неограниченным трафиком (или достаточным объемом, например, 10 ТБ/мес). Mautic активно взаимодействует с внешними SMTP-сервисами для рассылок и обрабатывает запросы от веб-форм и трекинговых пикселей, поэтому стабильное и быстрое сетевое соединение необходимо.
Рекомендуемый VPS-план для старта:
Для большинства начинающих и средних проектов (до 50 000 контактов, до 10 активных кампаний) оптимальным будет VPS со следующими характеристиками:
- CPU: 4 ядра
- RAM: 8 ГБ
- Диск: 160-200 ГБ NVMe SSD
- Сеть: 1 Гбит/с, 10 ТБ трафика
Вы можете рассмотреть VPS с указанными характеристиками или аналогичные предложения от других провайдеров.
Когда нужен dedicated, а не VPS
Выделенный сервер (dedicated server) становится необходимым, когда ваш проект достигает действительно больших масштабов:
- База контактов превышает 200 000-500 000.
- Вы отправляете миллионы писем в месяц.
- У вас одновременно активно десятки сложных кампаний с множеством шагов и сегментов.
- Требуется максимальная производительность базы данных и PHP-обработки без влияния "соседей" по VPS.
- Появляются строгие требования к соответствию нормативным актам, которые лучше всего удовлетворяются на полностью изолированном оборудовании.
В таких случаях, подходящий dedicated сервер обычно включает 8+ ядер CPU, 32+ ГБ RAM и несколько NVMe SSD в RAID-массиве. Вы можете подобрать подходящий dedicated сервер для таких задач.
Локация: на что влияет
Выбор локации VPS влияет на несколько факторов:
- Скорость доступа для пользователей: Размещайте сервер ближе к вашей целевой аудитории, чтобы уменьшить задержки (latency) при загрузке форм, лендингов и трекинговых скриптов.
- Законодательство о данных (GDPR, CCPA): Если вы работаете с персональными данными, убедитесь, что локация сервера соответствует требованиям местного законодательства о защите данных.
- Скорость рассылок: Хотя большинство SMTP-провайдеров имеют глобальные сети, физическая близость к ним может незначительно повлиять на скорость доставки.
Обычно рекомендуется выбирать локацию сервера в регионе, где проживает большинство ваших клиентов или где находится ваш основной бизнес.
Подготовка сервера
Перед установкой Mautic необходимо провести базовую настройку вашего нового VPS. Мы будем использовать Ubuntu Server 24.04 LTS (или 26.04 LTS, если к 2026 году она станет доступной и стабильной) в качестве операционной системы. Эти шаги обеспечат безопасность и стабильность вашей системы.
1. Подключение по SSH и обновление системы
Сначала подключитесь к вашему VPS как пользователь root, используя IP-адрес, предоставленный вашим провайдером. Замените your_vps_ip на реальный IP-адрес вашего сервера.
ssh root@your_vps_ip
# Введите пароль root, если потребуется
После успешного подключения обновите список пакетов и все установленные пакеты до последних версий. Это гарантирует, что у вас есть самые свежие исправления безопасности и новые функции.
sudo apt update && sudo apt upgrade -y
# Обновление списка пакетов и всех установленных пакетов
2. Создание нового пользователя с правами sudo
Работать под пользователем root небезопасно. Создадим нового пользователя с ограниченными правами и добавим его в группу sudo.
adduser mauticuser
# Создание нового пользователя 'mauticuser'
# Следуйте инструкциям: введите пароль, затем можно пропустить информацию о пользователе
sudo usermod -aG sudo mauticuser
# Добавление 'mauticuser' в группу sudo, чтобы он мог выполнять команды с правами администратора
3. Настройка SSH-ключей (рекомендуется)
Для повышения безопасности вместо паролей используйте SSH-ключи. Сначала сгенерируйте ключ на вашей локальной машине (если у вас его еще нет):
# На вашей локальной машине
ssh-keygen -t ed25519 -C "[email protected]"
# Генерация нового SSH-ключа типа Ed25519
Затем скопируйте публичный ключ на ваш VPS для пользователя mauticuser:
# На вашей локальной машине
ssh-copy-id mauticuser@your_vps_ip
# Копирование публичного SSH-ключа на сервер
Теперь вы можете подключиться к серверу как mauticuser без пароля:
ssh mauticuser@your_vps_ip
# Подключение к серверу как 'mauticuser'
4. Отключение аутентификации по паролю для root (после настройки SSH-ключей)
Отредактируйте файл конфигурации SSH-демона, чтобы запретить подключение по паролю для root и отключить аутентификацию по паролю в целом (после успешной настройки SSH-ключей).
sudo nano /etc/ssh/sshd_config
# Открытие файла конфигурации SSH-демона
Найдите и измените следующие строки (или добавьте, если их нет):
PermitRootLogin prohibit-password
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Сохраните изменения (Ctrl+O, Enter) и выйдите (Ctrl+X). Затем перезапустите SSH-сервис:
sudo systemctl restart sshd
# Перезапуск SSH-сервиса для применения изменений
5. Настройка брандмауэра UFW
Установите и настройте Uncomplicated Firewall (UFW), чтобы разрешить только необходимые подключения.
sudo apt install ufw -y
# Установка UFW
sudo ufw allow OpenSSH
# Разрешить SSH-подключения (порт 22)
sudo ufw allow 'Nginx Full'
# Разрешить HTTP (порт 80) и HTTPS (порт 443) для веб-сервера Nginx
sudo ufw enable
# Включение брандмауэра. Подтвердите 'y'
sudo ufw status
# Проверка статуса брандмауэра
6. Установка Fail2Ban
Fail2Ban защищает ваш сервер от атак методом подбора пароля, блокируя IP-адреса, которые делают слишком много неудачных попыток входа.
sudo apt install fail2ban -y
# Установка Fail2Ban
sudo systemctl enable fail2ban
# Включение автоматического запуска Fail2Ban при загрузке системы
sudo systemctl start fail2ban
# Запуск сервиса Fail2Ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# Копирование основного конфига для создания локальной версии
# Это позволит вашим изменениям сохраниться при обновлении Fail2Ban
sudo nano /etc/fail2ban/jail.local
# Откройте файл и убедитесь, что sshd включен (enabled = true)
# Вы можете настроить bantime, findtime, maxretry по своему усмотрению
После изменений в jail.local, перезапустите Fail2Ban:
sudo systemctl restart fail2ban
# Перезапуск Fail2Ban для применения новых настроек
Ваш сервер теперь базово настроен и защищен. Можно переходить к установке основного ПО.
Установка ПО — пошагово
Для работы Mautic требуется веб-сервер (Nginx), интерпретатор PHP с необходимыми расширениями и база данных (MySQL). Мы будем устанавливать актуальные версии этих компонентов, которые будут стабильны и поддерживаться к 2026 году.
1. Установка Nginx
Nginx будет выступать в роли веб-сервера, обслуживающего запросы к Mautic. Мы используем его благодаря высокой производительности и низкому потреблению ресурсов.
sudo apt install nginx -y
# Установка веб-сервера Nginx
sudo systemctl enable nginx
# Включение Nginx для автоматического запуска при загрузке системы
sudo systemctl start nginx
# Запуск сервиса Nginx
Проверьте, что Nginx работает, открыв в браузере IP-адрес вашего сервера. Вы должны увидеть стандартную приветственную страницу Nginx.
2. Установка MySQL Server
Mautic использует базу данных для хранения всей информации: контактов, кампаний, настроек. MySQL 8.0+ является отличным выбором.
sudo apt install mysql-server -y
# Установка MySQL сервера (версия 8.0 или выше)
sudo mysql_secure_installation
# Запуск скрипта для усиления безопасности MySQL
# Следуйте инструкциям:
# - Установите плагин валидации паролей (рекомендуется)
# - Установите надежный пароль для пользователя root MySQL
# - Удалите анонимных пользователей
# - Запретите удаленный вход для root
# - Удалите тестовую базу данных
# - Перезагрузите таблицы привилегий
3. Установка PHP и необходимых расширений
Mautic 5.x и будущие версии Mautic 6.x (актуальные на 2026 год) требуют PHP 8.3 или более новой версии. Мы установим PHP 8.3/8.4 и все необходимые расширения.
sudo apt install php8.3-fpm php8.3-mysql php8.3-cli php8.3-gd php8.3-curl php8.3-intl php8.3-zip php8.3-mbstring php8.3-xml php8.3-soap php8.3-opcache php8.3-bcmath php8.3-gmp php8.3-imagick -y
# Установка PHP-FPM (FastCGI Process Manager) и всех необходимых расширений
sudo systemctl enable php8.3-fpm
# Включение PHP-FPM для автоматического запуска
sudo systemctl start php8.3-fpm
# Запуск сервиса PHP-FPM
Для Mautic также рекомендуется увеличить лимиты памяти и времени выполнения в PHP. Отредактируйте файл php.ini:
sudo nano /etc/php/8.3/fpm/php.ini
# Открытие файла конфигурации PHP для PHP-FPM
Найдите и измените следующие значения:
memory_limit = 512M
max_execution_time = 300
date.timezone = Europe/Moscow ; Установите ваш часовой пояс
Сохраните изменения и выйдите. Затем перезапустите PHP-FPM:
sudo systemctl restart php8.3-fpm
# Перезапуск PHP-FPM для применения новых настроек
4. Создание базы данных для Mautic
Подключитесь к MySQL от имени пользователя root и создайте новую базу данных и пользователя для Mautic.
sudo mysql -u root -p
# Подключение к MySQL как root
# Введите пароль root MySQL, который вы установили ранее
Внутри консоли MySQL выполните следующие команды. Замените mautic_db, mautic_user и strong_password на свои значения.
CREATE DATABASE mautic_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# Создание базы данных для Mautic
CREATE USER 'mautic_user'@'localhost' IDENTIFIED BY 'strong_password';
# Создание пользователя для Mautic
GRANT ALL PRIVILEGES ON mautic_db. TO 'mautic_user'@'localhost';
# Предоставление всех привилегий пользователю на базу данных
FLUSH PRIVILEGES;
# Обновление привилегий
EXIT;
# Выход из консоли MySQL
5. Загрузка и установка Mautic
Перейдите в директорию, где будут храниться файлы Mautic, и загрузите последнюю стабильную версию. К 2026 году это, вероятно, будет Mautic 5.x или 6.x. Мы будем использовать официальный репозиторий GitHub для загрузки.
cd /var/www/
# Переход в директорию для веб-сайтов
sudo mkdir mautic
# Создание директории для Mautic
sudo chown mauticuser:www-data mautic
# Установка владельца директории для пользователя mauticuser и группы www-data
sudo chmod 775 mautic
# Установка прав доступа для директории
cd mautic
# Переход в директорию Mautic
sudo apt install unzip -y
# Установка утилиты для распаковки архивов
wget https://github.com/mautic/mautic/releases/download/5.1.0/5.1.0-update.zip -O mautic.zip
# Загрузка последней стабильной версии Mautic (например, 5.1.0, обновите ссылку на актуальную!)
# В 2026 году ссылка будет на Mautic 5.x или 6.x, например, https://github.com/mautic/mautic/releases/download/6.0.0/6.0.0-update.zip
sudo unzip mautic.zip -d .
# Распаковка архива в текущую директорию
sudo rm mautic.zip
# Удаление архива
sudo chown -R mauticuser:www-data /var/www/mautic
# Установка владельца для всех файлов Mautic
sudo find /var/www/mautic -type d -exec chmod 755 {} \;
# Установка прав 755 для всех директорий
sudo find /var/www/mautic -type f -exec chmod 644 {} \;
# Установка прав 644 для всех файлов
sudo chmod -R 775 /var/www/mautic/var
# Установка прав для директории var (кэш, логи)
sudo chmod -R 775 /var/www/mautic/media
# Установка прав для директории media
sudo chmod -R 775 /var/www/mautic/app/cache
# Установка прав для директории app/cache
sudo chmod -R 775 /var/www/mautic/app/logs
# Установка прав для директории app/logs
Теперь все компоненты установлены, и Mautic готов к дальнейшей конфигурации.
Конфигурация
После установки всех компонентов, необходимо настроить Nginx для обслуживания Mautic, обеспечить HTTPS-соединение и выполнить первоначальную настройку самого Mautic.
1. Настройка Nginx для Mautic
Создайте новый файл конфигурации Nginx для вашего домена. Замените your_domain.com на ваш фактический домен.
sudo nano /etc/nginx/sites-available/your_domain.com
# Создание нового файла конфигурации Nginx
Вставьте следующий конфиг Nginx:
server {
listen 80;
server_name your_domain.com www.your_domain.com;
root /var/www/mautic/docroot; # Mautic 5.x+ использует поддиректорию docroot
index index.php index.html index.htm;
error_log /var/log/nginx/mautic_error.log;
access_log /var/log/nginx/mautic_access.log;
client_max_body_size 100M; # Увеличиваем лимит на размер загружаемых файлов
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location ~ /(app|bin|cache|translations|vendor|src)/ {
deny all;
return 404;
}
location ~ /(composer.json|composer.lock|nginx.conf|Dockerfile) {
deny all;
return 404;
}
# Для Mautic 5.x+ рекомендуется использование /media/images/
location ~ ^/media/images/(.)$ {
try_files $uri @asset;
expires max;
add_header Cache-Control "public";
}
location @asset {
rewrite ^/media/images/(.)$ /media/images/$1 break;
proxy_pass http://127.0.0.1:8000; # Замените на ваш PHP-FPM сокет, если не используется Nginx
}
}
Сохраните файл и выйдите. Затем активируйте конфигурацию, создав символическую ссылку, и проверьте синтаксис Nginx:
sudo ln -s /etc/nginx/sites-available/your_domain.com /etc/nginx/sites-enabled/
# Активация конфигурации Nginx
sudo nginx -t
# Проверка синтаксиса конфигурации Nginx
sudo systemctl restart nginx
# Перезапуск Nginx для применения изменений
Теперь, если вы введете http://your_domain.com в браузере, вы должны увидеть страницу установки Mautic.
2. Настройка HTTPS с помощью Certbot (Let's Encrypt)
Для безопасного соединения и повышения доверия SEO, настроим HTTPS с помощью бесплатных сертификатов Let's Encrypt через Certbot.
sudo apt install certbot python3-certbot-nginx -y
# Установка Certbot и плагина для Nginx
sudo certbot --nginx -d your_domain.com -d www.your_domain.com
# Запуск Certbot для получения и установки сертификатов
# Следуйте инструкциям: введите email, согласитесь с условиями, выберите перенаправление HTTP на HTTPS
Certbot автоматически изменит ваш конфиг Nginx, добавив секции для HTTPS. Он также настроит автоматическое обновление сертификатов. Проверить статус автоматического обновления можно так:
sudo systemctl status certbot.timer
# Проверка статуса таймера Certbot для автоматического обновления
sudo certbot renew --dry-run
# Тестовый запуск обновления сертификатов
3. Завершение установки Mautic через веб-интерфейс
Откройте ваш домен (https://your_domain.com) в браузере. Вы увидите страницу установки Mautic. Следуйте шагам:
- Шаг 1: Права доступа. Убедитесь, что все права доступа отмечены зеленым.
- Шаг 2: Настройка базы данных. Введите данные, которые вы создали ранее:
- Database Driver: MySQL PDO
- Database Host: localhost
- Database Port: 3306
- Database Name: mautic_db
- Database Username: mautic_user
- Database Password: strong_password
- Table Prefix: (можно оставить пустым или указать
mt_)
- Шаг 3: Настройка администратора. Создайте учетную запись администратора Mautic. Используйте надежный пароль.
- Шаг 4: Настройка email. Настройте SMTP-сервер для отправки писем. Рекомендуется использовать внешний сервис (SendGrid, Mailgun, Amazon SES) вместо прямого SMTP с VPS, чтобы избежать проблем с доставляемостью.
После завершения вы будете перенаправлены на страницу входа в админ-панель Mautic.
4. Настройка Cron-заданий для Mautic
Mautic требует выполнения регулярных фоновых задач (обработка email-очередей, сегментация, обновление данных). Эти задачи настраиваются через Cron.
sudo -u mauticuser crontab -e
# Открытие crontab для пользователя mauticuser
Вставьте следующие строки в конец файла (убедитесь, что путь к PHP CLI правильный, в данном случае /usr/bin/php8.3):
# Mautic Cron Jobs
5,20,35,50 /usr/bin/php8.3 /var/www/mautic/bin/console mautic:segments:update > /dev/null 2>&1
# Обновление сегментов (каждые 15 минут)
10,25,40,55 /usr/bin/php8.3 /var/www/mautic/bin/console mautic:campaigns:update > /dev/null 2>&1
# Обновление кампаний (каждые 15 минут)
0,15,30,45 /usr/bin/php8.3 /var/www/mautic/bin/console mautic:campaigns:trigger > /dev/null 2>&1
# Запуск триггеров кампаний (каждые 15 минут)
0,30 /usr/bin/php8.3 /var/www/mautic/bin/console mautic:emails:send > /dev/null 2>&1
# Отправка писем из очереди (каждые 30 минут)
0 0 /usr/bin/php8.3 /var/www/mautic/bin/console mautic:maintenance:cleanup --days=365 > /dev/null 2>&1
# Очистка старых данных (раз в день, например, логов старше 365 дней)
0 2 /usr/bin/php8.3 /var/www/mautic/bin/console mautic:webhooks:send > /dev/null 2>&1
# Отправка вебхуков (раз в день)
Сохраните и закройте файл. Cron-задания будут выполняться автоматически.
5. Проверка работоспособности
Убедитесь, что Mautic доступен и работает корректно.
curl -I https://your_domain.com
# Проверка HTTP-заголовков вашего домена. Должен быть статус 200 OK и перенаправление на HTTPS.
Войдите в админ-панель Mautic. Перейдите в раздел "Настройки" -> "Системная информация". Убедитесь, что все компоненты отмечены как рабочие, и нет критических ошибок.
Бэкапы и обслуживание
Регулярное резервное копирование (бэкапы) и своевременное обслуживание — ключ к стабильной и безопасной работе Mautic. В этом разделе мы рассмотрим, что именно нужно бэкапить, как автоматизировать процесс и как поддерживать систему в актуальном состоянии.
1. Что бэкапить
Для полного восстановления Mautic вам понадобятся три основные группы данных:
- База данных Mautic: Содержит все ваши контакты, кампании, сегменты, email-ы, отчеты и другие динамические данные. Это самый важный компонент.
- Файлы Mautic: Включают ядро Mautic, плагины, темы, загруженные медиафайлы (изображения, документы), а также файлы конфигурации. Директория
/var/www/mautic/. - Конфигурационные файлы сервера: Настройки Nginx, PHP-FPM, Certbot, Fail2Ban, UFW. Хотя их можно восстановить вручную, бэкап ускорит процесс.
2. Простой скрипт автобэкапа (cron + rsync + mysqldump)
Создадим простой скрипт, который будет выполнять бэкап базы данных и файлов, а затем сохранять их в отдельную директорию. Для хранения бэкапов рекомендуется использовать внешнее хранилище, такое как S3-совместимое облачное хранилище или отдельный VPS.
sudo mkdir -p /opt/backups/mautic
# Создание директории для хранения бэкапов
sudo chown mauticuser:mauticuser /opt/backups/mautic
# Установка владельца для директории бэкапов
sudo nano /opt/backups/mautic_backup.sh
# Создание скрипта бэкапа
Вставьте следующий код в файл mautic_backup.sh. Замените mautic_user, strong_password, mautic_db на свои данные. Также укажите путь к внешнему хранилищу, если оно используется.
#!/bin/bash
# Параметры базы данных
DB_USER="mautic_user"
DB_PASS="strong_password"
DB_NAME="mautic_db"
# Пути
MAUTIC_ROOT="/var/www/mautic"
BACKUP_DIR="/opt/backups/mautic"
DATE=$(date +%Y%m%d%H%M%S)
KEEP_DAYS=7 # Сколько дней хранить бэкапы
# 1. Бэкап базы данных
echo "Dumping database..."
mysqldump -u ${DB_USER} -p"${DB_PASS}" ${DB_NAME} | gzip > ${BACKUP_DIR}/mautic_db_${DATE}.sql.gz
if [ $? -eq 0 ]; then
echo "Database backup created: ${BACKUP_DIR}/mautic_db_${DATE}.sql.gz"
else
echo "Error: Database backup failed!"
exit 1
fi
# 2. Бэкап файлов Mautic (без кэша и логов)
echo "Archiving Mautic files..."
tar -czf ${BACKUP_DIR}/mautic_files_${DATE}.tar.gz \
--exclude='${MAUTIC_ROOT}/var/cache/' \
--exclude='${MAUTIC_ROOT}/var/logs/' \
--exclude='${MAUTIC_ROOT}/vendor/' \
${MAUTIC_ROOT}
if [ $? -eq 0 ]; then
echo "Mautic files backup created: ${BACKUP_DIR}/mautic_files_${DATE}.tar.gz"
else
echo "Error: Mautic files backup failed!"
exit 1
fi
# 3. Очистка старых бэкапов
echo "Cleaning up old backups..."
find ${BACKUP_DIR} -type f -name "mautic_db_.sql.gz" -mtime +${KEEP_DAYS} -delete
find ${BACKUP_DIR} -type f -name "mautic_files_.tar.gz" -mtime +${KEEP_DAYS} -delete
echo "Old backups cleaned."
# 4. Синхронизация с внешним хранилищем (пример для rsync)
# Если у вас есть внешний сервер или S3-бакет, настройте синхронизацию здесь.
# Например, для rsync:
# rsync -avz --delete ${BACKUP_DIR}/ user@remote_server:/path/to/remote/backups/
# Для S3-совместимого хранилища используйте s3cmd или aws cli
echo "Backup process finished."
Сделайте скрипт исполняемым:
sudo chmod +x /opt/backups/mautic_backup.sh
# Делаем скрипт исполняемым
Добавьте скрипт в crontab пользователя mauticuser для ежедневного выполнения:
sudo -u mauticuser crontab -e
# Открытие crontab для пользователя mauticuser
Добавьте строку в конец файла, например, для запуска в 3:00 ночи:
0 3 /opt/backups/mautic_backup.sh > /dev/null 2>&1
# Ежедневный запуск скрипта бэкапа в 3:00 ночи
3. Куда складывать бэкапы
Никогда не храните бэкапы на том же сервере, что и рабочие данные. Это сводит на нет смысл бэкапа при выходе сервера из строя. Рекомендуемые варианты:
- Внешнее S3-совместимое хранилище: Облачные сервисы (Amazon S3, DigitalOcean Spaces, Backblaze B2) предлагают надежное и недорогое хранение. Используйте утилиты типа
s3cmdилиrcloneдля синхронизации. - Отдельный VPS или выделенный сервер: Вы можете использовать другой сервер исключительно для хранения бэкапов, синхронизируя их по SSH с помощью
rsync. - Локальное хранилище с синхронизацией: Для очень маленьких проектов можно временно хранить бэкапы локально, но обязательно настроить их автоматическую загрузку на облачный диск (Google Drive, Dropbox) с помощью скриптов.
4. Обновления: rolling vs maintenance window
Поддержание Mautic и всех компонентов системы в актуальном состоянии критически важно для безопасности и получения новых функций. Используйте следующую стратегию:
- Обновления ОС (Ubuntu): Выполняйте
sudo apt update && sudo apt upgrade -yрегулярно, например, раз в неделю. Если требуется перезагрузка ядра, планируйте перезагрузку сервера. - Обновления PHP, Nginx, MySQL: Эти компоненты обычно обновляются вместе с ОС. Однако, при переходе на новую мажорную версию (например, с PHP 8.3 на 8.4), планируйте это как отдельное окно обслуживания, так как могут потребоваться изменения в конфигурации или коде Mautic.
- Обновления Mautic: Mautic выпускает регулярные обновления (патчи, минорные и мажорные версии).
- Патчи и минорные обновления (5.1.0 -> 5.1.1): Обычно могут быть применены в "rolling" режиме, но всегда рекомендуется делать бэкап перед обновлением. Используйте команду
php /var/www/mautic/bin/console mautic:update:findи затемphp /var/www/mautic/bin/console mautic:update:apply. - Мажорные обновления (5.x -> 6.x): Требуют планирования "maintenance window" (окна обслуживания). Заранее изучите официальную документацию по обновлению Mautic, так как могут быть изменения в требованиях к PHP, структуре базы данных или файловой системе. Обязательно сделайте полный бэкап перед таким обновлением.
- Патчи и минорные обновления (5.1.0 -> 5.1.1): Обычно могут быть применены в "rolling" режиме, но всегда рекомендуется делать бэкап перед обновлением. Используйте команду
Всегда тестируйте обновления на стейджинг-сервере, если это возможно, прежде чем применять их на продакшене. Если стейджинг-сервера нет, тщательно изучайте changelog и делайте бэкап.
Troubleshooting + FAQ
Даже при самой тщательной настройке могут возникнуть проблемы. Этот раздел поможет вам диагностировать и решить наиболее распространенные из них, а также ответит на частые вопросы.
Mautic выдает ошибку 500 Internal Server Error или белую страницу
Что проверить:
- Логи Nginx: Проверьте
/var/log/nginx/mautic_error.log. - Логи PHP-FPM: Проверьте
/var/log/php8.3-fpm.log(или аналогичный путь). - Логи Mautic: Проверьте
/var/www/mautic/var/logs/mautic_prod.php. - Права доступа к файлам: Убедитесь, что у пользователя
www-data(или пользователя, под которым работает Nginx и PHP-FPM) есть права на чтение/запись в директории Mautic, особенно в/var/www/mautic/var. Выполнитеsudo chown -R www-data:www-data /var/www/mauticиsudo chmod -R 775 /var/www/mautic. - Лимиты PHP: Убедитесь, что
memory_limitиmax_execution_timeвphp.iniдостаточны (например, 512M и 300).
Email-ы не отправляются из Mautic
Что проверить:
- Настройки SMTP в Mautic: В разделе "Настройки" -> "Конфигурация" -> "Настройки Email". Убедитесь, что данные SMTP-сервера (хост, порт, логин, пароль) верны и вы используете надежный внешний SMTP-провайдер.
- Логи Mautic: Ищите ошибки, связанные с отправкой email, в
/var/www/mautic/var/logs/mautic_prod.php. - Cron-задания: Убедитесь, что
mautic:emails:sendзапускается регулярно (sudo -u mauticuser crontab -l). - Наличие спам-фильтров: Убедитесь, что ваш домен правильно настроен (SPF, DKIM, DMARC записи в DNS), чтобы избежать попадания в спам.
Mautic работает медленно или зависает при больших объемах данных
Что проверить:
- Ресурсы сервера: Используйте
htop,free -h,df -hдля мониторинга CPU, RAM и диска. Не хватает ли ресурсов? - Логи MySQL: Ищите медленные запросы.
- Индексы базы данных: Убедитесь, что MySQL правильно индексирует таблицы Mautic.
- Кэш Mautic: Убедитесь, что кэш работает (Mautic использует файловый кэш по умолчанию, можно настроить Redis для больших инсталляций).
- Cron-задания: Убедитесь, что они не перекрываются и выполняются своевременно, не создавая избыточную нагрузку.
Какой VPS-конфиг минимально подойдёт?
Для тестовой установки или очень небольшого проекта (до 5000 контактов, 1-2 кампании) можно начать с 2 ядер CPU, 4 ГБ RAM и 80 ГБ NVMe SSD. Однако, как только вы начнете активно использовать Mautic, рекомендуется перейти на конфигурацию с 4 ядрами, 8 ГБ RAM и 160+ ГБ NVMe SSD для обеспечения стабильной и быстрой работы.
Что выбрать — VPS или dedicated для этой задачи?
Для большинства пользователей, начинающих с Mautic, VPS является оптимальным выбором. Он предлагает достаточную гибкость, производительность и экономичность. Dedicated сервер становится оправданным при очень больших объемах данных (сотни тысяч контактов), высокой частоте рассылок (миллионы писем в месяц) или если у вас есть строгие требования к полной изоляции ресурсов и максимальной производительности, которые не может обеспечить VPS из-за виртуализации.
Как обновить Mautic?
Войдите в Mautic как администратор. Перейдите в "Настройки" (значок шестеренки в правом верхнем углу) -> "Компоненты" -> "Обновить Mautic". Если доступно обновление, Mautic предложит его установить. Также можно обновить через CLI, используя команды php /var/www/mautic/bin/console mautic:update:find и php /var/www/mautic/bin/console mautic:update:apply. Всегда делайте бэкап перед обновлением!
Как увеличить лимит на загрузку файлов в Mautic?
Увеличьте значения upload_max_filesize и post_max_size в файле /etc/php/8.3/fpm/php.ini. Также убедитесь, что в конфигурации Nginx (/etc/nginx/sites-available/your_domain.com) параметр client_max_body_size установлен на достаточное значение (например, 100M). После изменений перезапустите PHP-FPM и Nginx.
Выводы и следующие шаги
Поздравляем! Вы успешно развернули и настроили Mautic на своем VPS. Теперь у вас есть мощный и гибкий инструмент для автоматизации маркетинга, который полностью находится под вашим контролем. Вы получили не только функциональную платформу, но и ценный опыт в настройке серверной инфраструктуры, что пригодится для любых будущих проектов.
Вот несколько шагов, куда можно двигаться дальше, чтобы максимально эффективно использовать ваш Mautic:
- Интеграция с CRM и другими сервисами: Mautic имеет множество плагинов для интеграции с популярными CRM-системами (Salesforce, HubSpot, Zoho CRM), CMS (WordPress, Drupal), а также с внешними SMTP-провайдерами для улучшения доставляемости писем. Изучите доступные плагины и настройте их под свои нужды.
- Оптимизация производительности: Для крупных инсталляций рассмотрите использование Redis или Memcached для кэширования, а также настройку оптимизации MySQL. Возможно, потребуется горизонтальное масштабирование, если нагрузка становится слишком высокой.
- Расширенная безопасность: Дополнительно усильте безопасность, настроив двухфакторную аутентификацию для входа в Mautic, используя более сложные правила для Fail2Ban и регулярно проводя аудит безопасности сервера.