Как установить и настроить SuiteCRM на VPS
Готовые SaaS-CRM берут абонплату за каждого пользователя и держат ваши данные о клиентах на чужих серверах — для малого бизнеса это быстро превращается в статью расходов и вопрос доверия. SuiteCRM — open-source форк SugarCRM Community Edition — даёт ту же логику работы с клиентами (лиды, сделки, кампании, отчёты), но крутится на вашем сервере и не берёт денег за место в базе. Ниже — пошаговая установка на чистый VPS с Ubuntu 24.04, с правами доступа, cron-задачами и SSL, без которых SuiteCRM либо не заработает, либо будет постоянно сыпать ошибками.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое SuiteCRM и кому он подойдёт
SuiteCRM закрывает классический набор CRM-задач: учёт контактов и компаний, воронка сделок, email-кампании, тикеты поддержки, отчёты и права доступа по ролям. Интерфейс и логика модулей узнаваемы всем, кто работал с Salesforce или SugarCRM — SuiteCRM исторически развивался как их бесплатная замена.
Это решение подходит, если вы хотите:
- держать клиентскую базу на своей инфраструктуре, а не в облаке стороннего вендора;
- не платить за каждого дополнительного сотрудника отдельную подписку;
- дорабатывать модули под свои процессы — SuiteCRM открыт для кастомизации на PHP.
Обратная сторона: SuiteCRM — тяжёлое legacy-приложение с долгой историей. Интерфейс менее современный, чем у молодых SaaS-конкурентов, а администрирование требует базовых навыков работы с Linux, PHP и MySQL/MariaDB. Если этого пока нет и команда небольшая — возможно, вам проще начать с готового SaaS и вернуться к self-hosted решению позже.
Требования к серверу и выбор конфигурации VPS
SuiteCRM написан на PHP и использует реляционную БД, поэтому требования к железу умеренные, но растут вместе с числом пользователей и объёмом данных.
| Сценарий | CPU | RAM | Диск |
|---|---|---|---|
| Тест / до 5 пользователей | 2 vCPU | 2–4 ГБ | 20 ГБ SSD |
| Рабочая команда 10–30 человек | 2–4 vCPU | 4–8 ГБ | 40–80 ГБ SSD |
| 50+ пользователей, активные интеграции | 4+ vCPU | 8–16 ГБ | 100+ ГБ SSD |
Это ориентировочные цифры — точная нагрузка зависит от количества email-кампаний, отчётов с тяжёлыми выборками и сторонних интеграций через API. Начинать разумно с конфигурации на 4 ГБ ОЗУ: SuiteCRM вместе с MariaDB и PHP-FPM на 1–2 ГБ будет работать нестабильно, особенно во время индексации при импорте контактов.
Из ПО понадобятся: Ubuntu 24.04 LTS (подойдёт и Debian 12), PHP 8.1 или новее с набором расширений, MariaDB (или MySQL), веб-сервер Apache (официально рекомендуемый вариант) или Nginx с PHP-FPM, и валидный домен для SSL — без него часть функций (OAuth-интеграции, некоторые API) работать откажется из-за требований к HTTPS.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверПодготовка сервера: PHP, MariaDB и веб-сервер
Обновите систему и поставьте базовые пакеты:
apt update && apt upgrade -y
apt install -y software-properties-common curl unzip git
Добавьте PPA с актуальными версиями PHP и поставьте PHP с нужными модулями (репозиторий Ondřej Surý — стандартный источник свежего PHP для Ubuntu):
add-apt-repository ppa:ondrej/php -y
apt update
apt install -y apache2 libapache2-mod-php8.1 php8.1-cli php8.1-mysql \
php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip \
php8.1-intl php8.1-imap php8.1-bcmath php8.1-soap php8.1-ldap
Проверьте, что версия PHP актуальна для той версии SuiteCRM, которую собираетесь ставить, — сверьтесь с разделом System Requirements на официальном сайте перед установкой, требования по минорным версиям PHP периодически меняются.
Поставьте MariaDB и пройдите базовую защиту:
apt install -y mariadb-server
mysql_secure_installation
Создайте базу и пользователя под SuiteCRM:
CREATE DATABASE suitecrm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'suitecrm_user'@'localhost' IDENTIFIED BY 'СложныйПароль123!';
GRANT ALL PRIVILEGES ON suitecrm.* TO 'suitecrm_user'@'localhost';
FLUSH PRIVILEGES;
Если предпочитаете Nginx вместо Apache — принцип тот же, но нужен отдельный блок с проксированием PHP-FPM через fastcgi_pass; общую логику настройки Nginx как обратного прокси разбирали в статье про Nginx как реверс-прокси. Официальная документация SuiteCRM ориентирована на Apache с .htaccess, поэтому если это ваша первая установка — проще начать с Apache и mod_rewrite:
a2enmod rewrite
systemctl restart apache2
Установка SuiteCRM: файлы и права доступа
Скачайте актуальный релиз с официального сайта suitecrm.com (раздел Download) или из репозитория проекта на GitHub — там же лежат контрольные суммы для проверки архива. Возьмите полный installer-пакет (Full Installer), в нём уже собраны зависимости, и отдельно выполнять composer install не придётся:
cd /var/www
wget https://<ссылка-на-архив-с-официального-сайта>
unzip SuiteCRM-*.zip -d suitecrm
mv suitecrm/*/* suitecrm/ 2>/dev/null
Точное имя архива и структура вложенных папок отличаются от версии к версии — ориентируйтесь на README в самом архиве.
Веб-сервер должен указывать на корень распакованного SuiteCRM (в современных версиях — на подпапку public/, если она есть в вашем релизе; в более старых — прямо на корень). Пример виртуального хоста 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>
a2ensite suitecrm.conf
systemctl reload apache2
Права доступа — самая частая причина, по которой веб-установщик падает на середине с невнятной ошибкой. Веб-сервер должен иметь права на запись в директории кэша, загрузок и кастомизаций:
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 {} \;
chmod -R 775 /var/www/suitecrm/cache /var/www/suitecrm/upload \
/var/www/suitecrm/custom /var/www/suitecrm/modules 2>/dev/null
Если каких-то из этих папок нет в вашей версии архива — не страшно, команда просто пропустит отсутствующие пути; главное, чтобы www-data мог писать туда, куда пишет установщик (это будет видно по логам ошибок Apache при первом запуске мастера).
Настройка через веб-установщик и SSL
Откройте http://crm.example.com (или /legacy/install.php, если в вашей версии есть отдельная legacy-часть) в браузере — запустится мастер установки. Пройдите шаги:
- Лицензионное соглашение.
- Проверка системных требований — на этом шаге установщик честно скажет, каких PHP-расширений или прав не хватает; исправьте и обновите страницу.
- Данные подключения к БД: хост
localhost, имя базыsuitecrm, пользователь и пароль, которые вы создали выше. - Создание учётной записи администратора — задайте отдельный сложный пароль, не дефолтный
admin/password. - Финальная сборка и первый вход.
После успешной установки обязательно удалите или переименуйте установочный скрипт — если его оставить доступным, кто угодно сможет попытаться переинициализировать вашу CRM:
rm /var/www/suitecrm/public/legacy/install.php 2>/dev/null
Дальше — SSL. Без HTTPS браузеры будут ругаться, а часть встроенных интеграций (например, OAuth для внешней почты) откажется работать. Проще всего поднять Let's Encrypt через certbot:
apt install -y certbot python3-certbot-apache
certbot --apache -d crm.example.com
Если хотите сравнить certbot с альтернативой на shell-скриптах — разница и когда что удобнее разобраны в статье Certbot или acme.sh.
Cron, почта и резервное копирование
SuiteCRM опирается на плановые задачи (cron): отправка email-кампаний, напоминания, воркфлоу, чистка временных файлов — всё это выполняет cron.php, который система вызывает раз в минуту. Без настроенного cron часть функций CRM просто не будет работать, при этом никакой явной ошибки в интерфейсе вы не увидите.
Создайте задание от имени пользователя веб-сервера:
crontab -u www-data -e
И добавьте строку:
* * * * * cd /var/www/suitecrm/public/legacy && php -f cron.php > /dev/null 2>&1
(если в вашей версии нет подпапки legacy, укажите путь к корню установки).
Для отправки писем (уведомления, кампании) зайдите в Admin → Email Settings и укажите SMTP-сервер — либо ваш почтовый сервис, либо внешний транзакционный сервис через SMTP. Указывать локальный sendmail без настроенного SPF/DKIM для домена не стоит — письма с высокой вероятностью улетят в спам у получателей.
База данных — самое ценное в CRM, бэкапить нужно регулярно и с проверкой восстановления, а не «раз настроил и забыл». Базовый вариант — mysqldump по расписанию:
mysqldump -u suitecrm_user -p suitecrm | gzip > /backups/suitecrm_$(date +%F).sql.gz
Более надёжный и автоматизированный подход с ротацией и проверкой целостности разобран в статье про бэкап MySQL на VPS — рекомендуем настроить его сразу после первого успешного входа в CRM, а не после первой потери данных.
Безопасность и типичные проблемы
SuiteCRM — публично доступное веб-приложение с формой логина, а значит, будет получать попытки перебора паролей рано или поздно. Базовая защита:
- поставьте fail2ban с правилом на неудачные попытки входа в SuiteCRM (по логам Apache/PHP) — как это настроить в общем виде, описано в статье про fail2ban на VPS;
- отключите листинг директорий в Apache (
Options -Indexes); - держите PHP и SuiteCRM в актуальных версиях — уязвимости в legacy CRM-системах находят регулярно;
- ограничьте доступ к админке SuiteCRM по IP через
.htaccessили файрвол, если у команды статичные адреса.
Из частых проблем при установке:
- Белый экран после установки. Почти всегда это
display_errorsвыключен и PHP молча падает на нехватке расширения или памяти. Временно включите вывод ошибок вphp.ini(display_errors = On), посмотрите, чего не хватает, верните настройку обратно. - «Failed to write file» в процессе установки. Права доступа — см. раздел выше, обычно забыта одна из директорий
cache/upload/custom. - Медленные отчёты и списки на больших объёмах данных. SuiteCRM использует полнотекстовый поиск через БД, и без должного тюнинга MariaDB на большой базе контактов запросы начинают тормозить — увеличивайте
innodb_buffer_pool_sizeпропорционально доступной памяти. - Cron не отрабатывает. Проверьте, что задание реально стоит от имени
www-data(crontab -u www-data -l), а не отroot— тогда файлы кэша создаются с неправильным владельцем и следующий запуск падает по правам.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
SuiteCRM правда бесплатен?
Да, основной продукт распространяется под открытой лицензией и не требует лицензионных платежей за пользователей. Платить придётся только за сервер, домен и, при желании, за платные аддоны/поддержку от сторонних вендоров.
Можно ли обойтись Nginx вместо Apache?
Технически да, SuiteCRM работает и за Nginx + PHP-FPM, но официальная документация и большинство готовых конфигов ориентированы на Apache с .htaccess. Если у вас уже настроен стек на Nginx — переносить логику .htaccess в конфиг Nginx придётся вручную.
Как обновить SuiteCRM до новой версии?
Через встроенный модуль Module Loader/UpgradeWizard в админке для минорных обновлений, либо вручную — с обязательным бэкапом БД и файлов перед началом. Мажорные обновления часто требуют промежуточных шагов через несколько версий подряд, это стоит проверять в release notes конкретного релиза.
Сколько пользователей выдержит недорогой VPS?
На конфигурации 2 vCPU / 4 ГБ комфортно работают команды до 10–15 человек при умеренной нагрузке. Для более крупных команд разумнее закладывать 8+ ГБ ОЗУ и выносить БД на отдельный диск с быстрым I/O.
Нужен ли отдельный SMTP-сервис или хватит локальной почты?
Для системных писем (уведомления, сброс пароля, кампании) практически всегда лучше внешний SMTP с настроенными SPF/DKIM — иначе письма с сервера, у которого нет репутации, будут массово попадать в спам.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →