SuiteCRM на Ubuntu 24.04: пошаговая установка
Если компания выросла из таблиц Excel и мессенджеров, но платить за облачную CRM с подпиской «по числу пользователей» не хочется — SuiteCRM закрывает этот вопрос. Это open-source форк SugarCRM, который вы разворачиваете на своём сервере один раз и дальше не платите за лицензии вообще. Ниже — рабочая инструкция по установке SuiteCRM на чистый Ubuntu 24.04, от подготовки сервера до первого входа в систему.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое SuiteCRM и кому подходит self-hosted вариант
SuiteCRM — это классическая CRM-система с модулями учёта клиентов, сделок, задач, кампаний и отчётов, написанная на PHP. Её ключевое отличие от SaaS-конкурентов (amoCRM, Bitrix24, HubSpot) — код полностью открыт, а данные физически лежат на вашем сервере, а не у стороннего провайдера. Это важно, если:
- в компании есть требования по хранению персональных данных клиентов на территории РФ или другой конкретной юрисдикции;
- число пользователей растёт, и подписочная модель SaaS начинает выходить дороже аренды сервера;
- нужна глубокая кастомизация полей, workflow и интеграций, которую облачные тарифы ограничивают.
Минус тоже стоит проговорить честно: обновления, бэкапы и безопасность — теперь ваша забота, а не забота вендора. Если команда небольшая и не готова администрировать сервер сама, возможно, разумнее рассмотреть выделенный сервер под CRM с готовой конфигурацией и отдать администрирование на аутсорс.
Требования к серверу и подготовка Ubuntu 24.04
SuiteCRM — не самое лёгкое приложение: PHP-движок, база данных и веб-сервер вместе комфортно чувствуют себя от 2 vCPU и 4 ГБ RAM для команды в 10-20 человек. Для 50+ пользователей закладывайте от 4 vCPU и 8 ГБ. Диск — SSD от 40 ГБ, с запасом под вложения и бэкапы базы.
Начните с обновления системы и установки базовых утилит:
apt update && apt upgrade -y
apt install -y curl wget unzip software-properties-common gnupg2
Проверьте часовой пояс сервера — SuiteCRM чувствителен к рассинхрону времени между PHP и MySQL:
timedatectl set-timezone Europe/Moscow
Замените на свой часовой пояс, если он другой.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверУстанавливаем Apache, PHP и MariaDB
SuiteCRM традиционно ставят на связку Apache + PHP + MariaDB (по сути, LAMP). В репозиториях Ubuntu 24.04 по умолчанию идёт PHP 8.3, а SuiteCRM на момент актуальности этой статьи официально поддерживает PHP 8.1-8.2 — версии новее могут вызывать предупреждения или ошибки совместимости в некоторых модулях. Поэтому подключаем PPA Ondřej Surý и ставим нужную версию явно:
add-apt-repository ppa:ondrej/php -y
apt update
apt install -y apache2 mariadb-server \
php8.2 php8.2-cli php8.2-common php8.2-mysql php8.2-xml \
php8.2-mbstring php8.2-curl php8.2-zip php8.2-gd php8.2-imap \
php8.2-intl php8.2-ldap php8.2-soap php8.2-bcmath php8.2-opcache
Перед установкой уточните в документации SuiteCRM актуальный список поддерживаемых версий PHP — он периодически меняется от релиза к релизу.
Включите модуль Apache для PHP 8.2 и rewrite:
a2enmod php8.2 rewrite headers
systemctl restart apache2
Настройте ключевые параметры PHP в /etc/php/8.2/apache2/php.ini:
memory_limit = 256M
upload_max_filesize = 30M
post_max_size = 30M
max_execution_time = 300
date.timezone = Europe/Moscow
После правки — systemctl restart apache2.
Запустите защиту MariaDB и создайте пароль root:
mysql_secure_installation
Ответьте Y на все вопросы про удаление тестовых баз, анонимных пользователей и запрет удалённого входа под root — для продакшена это правильный набор настроек по умолчанию. Если нужны детали по самой MariaDB, есть отдельный разбор — установка MariaDB на Ubuntu 24.04.
База данных для SuiteCRM
Заходим в MySQL-консоль и создаём отдельную базу и пользователя — ставить CRM под root в проде не стоит:
mysql -u root -p
CREATE DATABASE suitecrm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'suitecrm_user'@'localhost' IDENTIFIED BY 'СложныйПарольЗдесь';
GRANT ALL PRIVILEGES ON suitecrm.* TO 'suitecrm_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Замените пароль на свой — минимум 16 символов, буквы, цифры и спецсимволы. Этот пароль понадобится на шаге веб-установки.
Установка SuiteCRM: от архива до веб-инсталлятора
Скачивать SuiteCRM лучше не через git clone, а готовым релизным архивом со страницы официальных релизов проекта (GitHub или suitecrm.com) — в нём уже собраны фронтенд-ассеты, и не нужно поднимать Composer с Node.js на сервере. Найдите актуальную ссылку на нужный релиз ветки 8.x и подставьте её вместо примера:
cd /tmp
wget https://github.com/salesagility/SuiteCRM-Core/releases/download/v8.x.x/SuiteCRM-8.x.x.zip
mkdir -p /var/www/suitecrm
unzip SuiteCRM-8.x.x.zip -d /var/www/suitecrm
В SuiteCRM 8 корень сайта — не сам каталог установки, а вложенная папка public/. Именно на неё должен смотреть DocumentRoot Apache:
<VirtualHost *:80>
ServerName crm.example.com
DocumentRoot /var/www/suitecrm/public
<Directory /var/www/suitecrm/public>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/suitecrm_error.log
CustomLog ${APACHE_LOG_DIR}/suitecrm_access.log combined
</VirtualHost>
Сохраните как /etc/apache2/sites-available/suitecrm.conf, включите сайт и перезапустите Apache:
a2ensite suitecrm.conf
a2dissite 000-default.conf
systemctl reload apache2
Выставьте права так, чтобы Apache мог писать в каталоги кэша, загрузок и логов, но не более того:
chown -R www-data:www-data /var/www/suitecrm
find /var/www/suitecrm -type d -exec chmod 755 {} \;
find /var/www/suitecrm -type f -exec chmod 644 {} \;
Откройте в браузере http://crm.example.com (или http://IP-сервера, если домен ещё не привязан) — запустится веб-инсталлятор. Он попросит:
- Принять лицензионное соглашение (GPL v3).
- Указать параметры MySQL-подключения — хост
localhost, имя базыsuitecrm, пользователя и пароль, созданные на предыдущем шаге. - Задать логин и пароль администратора CRM.
- Выбрать демо-данные (для теста лучше поставить «Да», для боевого запуска — «Нет»).
После успешного прохождения мастера SuiteCRM создаст таблицы в базе и покажет страницу входа.
После установки: cron, права и SSL
SuiteCRM полагается на плановые задачи для отправки email-уведомлений, напоминаний и работы workflow-модуля. Без cron часть функциональности CRM просто не будет срабатывать. Добавьте задание от имени пользователя www-data:
crontab -u www-data -e
* * * * * cd /var/www/suitecrm/public/legacy && php -f cron.php > /dev/null 2>&1
Если раньше не настраивали плановые задачи на сервере — есть отдельный разбор работы с cron на VPS.
Дальше — обязательный SSL. CRM хранит логины, пароли и данные клиентов, гонять их по HTTP недопустимо. Проще всего поднять Let's Encrypt через Certbot:
apt install -y certbot python3-certbot-apache
certbot --apache -d crm.example.com
Certbot сам пропишет редирект с HTTP на HTTPS и настроит автопродление сертификата. Подробности и разбор частых ошибок — в статье про настройку Let's Encrypt SSL на VPS.
Последний штрих — закрыть сервер от лишнего трафика фаерволом, оставив только SSH, HTTP и HTTPS:
ufw allow OpenSSH
ufw allow 'Apache Full'
ufw enable
Если фаервол на сервере ещё не настраивался в принципе, посмотрите пошаговую настройку UFW на Ubuntu 24.04.
Отдельно проверьте, что после установки на сервере не остался доступным файл install.php из каталога legacy/ — оставленный открытым инсталлятор позволяет пересоздать базу заново, а это прямая дыра в безопасности. В большинстве сборок SuiteCRM он блокируется автоматически после первого прохождения мастера, но лишний раз убедиться стоит: откройте https://crm.example.com/legacy/install.php в браузере и убедитесь, что доступ закрыт или мастер отказывается запускаться повторно.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Какая версия PHP нужна для SuiteCRM?
На момент написания статьи официально поддерживаются PHP 8.1-8.2. Ubuntu 24.04 ставит по умолчанию PHP 8.3, поэтому нужную версию подключают отдельно через PPA Ondřej Surý. Перед установкой сверьтесь с актуальными требованиями в документации проекта — список поддерживаемых версий обновляется вместе с релизами.
Можно ли использовать Nginx вместо Apache?
Да, SuiteCRM прекрасно работает и под Nginx с PHP-FPM, но потребуется вручную настроить rewrite-правила, которые под Apache подхватываются автоматически через .htaccess. Если вы уже используете Nginx как основной веб-сервер на проекте, закладывайте на эту настройку дополнительное время.
Как перенести SuiteCRM на другой сервер?
Нужно перенести три вещи: файлы каталога установки (особенно public/legacy/upload с вложениями), дамп базы MySQL через mysqldump, и файл конфигурации public/legacy/config.php с адресами и ключами. После переноса важно обновить site_url в конфиге на новый домен.
Нужен ли отдельный сервер под почту для уведомлений SuiteCRM?
Не обязательно — SuiteCRM умеет отправлять письма через внешний SMTP-сервер (например, у вашего провайдера почты), достаточно указать его данные в настройках CRM. Поднимать собственный почтовый сервер имеет смысл только при больших объёмах рассылок или требованиях к полному контролю над почтовой инфраструктурой.
Как часто нужно обновлять SuiteCRM?
Разработчики выпускают обновления безопасности регулярно, и откладывать их на self-hosted инсталляции особенно рискованно — патчи для облачных CRM накатывает вендор, а здесь это ваша ответственность. Перед каждым обновлением делайте полный бэкап базы и файлов — процесс обновления в SuiteCRM не всегда проходит гладко на кастомизированных инсталляциях.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →