Установка SuiteCRM на Debian 9 (LAMP)
Краткое содержание
- Требования и подготовка сервера
- Установка Apache, PHP и MariaDB
- Конфигурация PHP и MariaDB под SuiteCRM
- Установка SuiteCRM и права доступа
- Базовая безопасность, HTTPS и firewall
- Тестирование, отладка и чеклисты ролей
- Дополнительные рекомендации: резервное копирование, обновление, миграция
Введение
SuiteCRM — это форк SugarCRM, открытая CRM-система на PHP для управления продажами, маркетингом, поддержкой и проектами. Эта инструкция фокусируется на развертывании SuiteCRM 7.9.9 на Debian 9 под Apache/PHP7.0/MariaDB.
Важно: в примерах сохранены версии и файлы, указанные в исходном руководстве (например, SuiteCRM-7.9.9.zip). Если вы обновляете версии ОС, PHP или SuiteCRM — адаптируйте команды и зависимости под актуальные пакеты.
Требования
- Сервер (физический или VPS) с минимум 2 ГБ RAM и минимальной установкой Debian 9.
- Доступ к root (локально или по SSH) или пользователь с sudo.
- Статический IP (на интерфейсе) либо DHCP с резервированием.
- Публичный домен для доступа из интернета (необязательно для локальных установок).
- Почтовый сервер (локальный или внешний: Gmail, Exchange и т. п.) для отправки уведомлений и регистрации.
Важно: SuiteCRM требует корректно настроенного PHP и СУБД; в этом руководстве предполагается PHP 7.0 и MariaDB 10.1.x (как в Debian 9).
TL;DR для администратора
- Обновите систему: apt update && apt upgrade && reboot.
- Установите Apache и модули PHP:
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-mbstring php7.0-xml php7.0-json php7.0-zip php7.0-curl php7.0-imap- Установите MariaDB и модуль MySQL для PHP:
apt install mariadb-server php7.0-mysql mariadb-client- Настройте MariaDB (mysql_secure_installation) и создайте базу/пользователя.
- Скачайте SuiteCRM, распакуйте и скопируйте файлы в /var/www/html, задайте владельца www-data.
- Настройте PHP (php.ini), включите OPCache, перезапустите Apache.
- Установите HTTPS (Let’s Encrypt/покупной сертификат) и добавьте редирект в .htaccess.
- Запустите установщик через браузер и завершите конфигурацию.
Подготовка сервера — подробности
Войдите на сервер как root или пользователь с sudo и задайте hostname:
hostnamectl set-hostname www.mycrm.orgПроверьте имя хоста:
hostnamectl
cat /etc/hostname
hostname -s
hostname -fОбновите пакеты и перезагрузите систему, чтобы применить обновления ядра и изменение hostname:
apt update
apt upgrade -y
systemctl rebootПосле перезагрузки снова войдите и установите утилиты:
apt install wget curl zip unzip -yПримечание: используйте -y для автоматического подтверждения, если вы доверяете командам.
Установка Apache и PHP
SuiteCRM работает на LAMP-стеке. Установите Apache и необходимые модули PHP 7.0 (включая mbstring, curl, zip, gd, imap и т. д.):
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-mbstring php7.0-xml php7.0-json php7.0-zip php7.0-curl php7.0-imap -yПосле установки убедитесь, что Apache запущен:
systemctl status apache2Включите модули SSL и rewrite:
a2enmod ssl
a2ensite default-ssl.conf
a2enmod rewrite
systemctl restart apache2Настройка правил перезаписи (AllowOverride)
Откройте файл конфигурации Apache и добавьте блок для директории веб-контента, чтобы .htaccess мог работать:
nano /etc/apache2/sites-enabled/000-default.confДобавьте после DocumentRoot:
Options +FollowSymlinks
AllowOverride All
Require all granted
Сделайте то же в SSL-конфигурации:
nano /etc/apache2/sites-enabled/default-ssl.confЗатем перезапустите Apache:
systemctl restart apache2Теперь посетите http://yourdomain.tld — должна появиться стандартная страница Apache.

Alt-описание: Стандартная стартовая страница Apache на Debian, отображаемая в браузере.
Конфигурация firewall
Если вы не видите веб-страницу, проверьте UFW:
ufw allow 'WWW Full'
# или
ufw allow 80/tcp
ufw allow 443/tcpЕсли вы используете iptables/netfilter-persistent:
apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl enable netfilter-persistent.serviceПроверьте адрес сервера:
ifconfig
# или
ip aПримечание: при использовании само-подписанного сертификата браузер покажет предупреждение. Примите сертификат для продолжения тестирования.
Установка MariaDB и базовая защита
Установите MariaDB и клиентский модуль:
apt install mariadb-server php7.0-mysql mariadb-client -yПроверьте, что MariaDB слушает на порту 3306 (локально):
ss -tulpn | grep 3306
# или используйте netstat (установите net-tools)
apt install net-tools -y
netstat -tlpn | grep 3306Защитите установку MariaDB:
mysql_secure_installationВ ответах обычно:
- Измените пароль root — если ещё не установлен, задайте новый.
- Удалите анонимных пользователей — да.
- Отключите удалённый доступ root — да.
- Удалите тестовую базу — да.
Если требуется сменить плагин аутентификации root (иногда нужно, чтобы root мог логиниться с паролем):
mysql -h localhost
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set plugin='' where user='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> exitПосле mysql_secure_installation попытайтесь залогиниться без пароля — доступ должен быть запрещён:
mysql -h localhost -u root
# ERROR 1045 expectedЗатем логин с паролем:
mysql -h localhost -u root -pНастройка PHP (php.ini) под SuiteCRM
Сделайте резервную копию текущего php.ini и отредактируйте конфигурацию для Apache:
cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.iniОтредактируйте (или добавьте) следующие значения. В некоторых руководствах memory_limit указано дважды — убедитесь, что в итоговой конфигурации используется нужное значение (рекомендуем 256M или выше для крупной базы):
file_uploads = On
default_charset = "UTF-8"
memory_limit = 256M
post_max_size = 60M
upload_max_filesize = 60M
max_input_time = 60
max_execution_time = 6000
date.timezone = Europe/LondonЗамените timezone на ваш регион (список: http://php.net/manual/en/timezones.php).
Включите OPCache для ускорения PHP-приложений, добавив в секцию [opcache]:
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1Перезапустите Apache:
systemctl restart apache2Проверьте настройки PHP через info-страницу:
echo ''| tee /var/www/html/info.phpОткройте в браузере: https://domain.tld/info.php и проверьте date.timezone и включённые модули.
После проверки удалите info.php (во избежание утечки информации):
rm /var/www/html/info.phpЗагрузка и установка SuiteCRM
Скачайте архив SuiteCRM (пример для SuiteCRM-7.9.9):
wget https://suitecrm.com/files/158/SuiteCRM-7.9/178/SuiteCRM-7.9.9.zipРаспакуйте:
unzip SuiteCRM-7.9.9.zip
ls -al SuiteCRM-7.9.9Удалите индексный файл Apache и тестовую info.php (если остался):
rm /var/www/html/index.html
rm /var/www/html/info.phpСкопируйте файлы SuiteCRM в webroot:
cp -rf SuiteCRM-7.9.9/* /var/www/html/Установите права владельца на файлы для пользователя Apache (www-data):
chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/Создание базы данных и пользователя
Войдите в MariaDB и создайте базу данных и пользователя (замените mycrm_db, crm_user и password1234 на свои значения):
mysql -u root -p
MariaDB [(none)]> create database mycrm_db;
MariaDB [(none)]> grant all privileges on mycrm_db.* to 'crm_user'@'localhost' identified by 'password1234';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exitЗапуск web-установщика
Откройте браузер и перейдите по адресу вашего сервера:
http://yourdomain.tldСледуйте шагам инсталлятора: принять лицензию, выбрать язык, подтвердить зависимости PHP и серверную конфигурацию, ввести данные базы данных и администратора приложения, настроить почтовый сервер и локаль.

Alt-описание: Скриншот мастера установки SuiteCRM: соглашение с лицензией и выбор языка.
Инсталлятор проверит окружение; при успешной проверке нажмите Next. Затем укажите тип базы данных MySQL(MySQLi), имя базы, хоста, логин и пароль.

Alt-описание: Экран проверки системных требований SuiteCRM с перечнем пройденных тестов.
Выберите данные демо (по желанию), модули (Sales, Marketing, Service и т. д.), настройте SMTP. Пример настроек для Gmail показан ниже — используйте учётную запись и параметры SMTP вашего провайдера.

Alt-описание: Экран конфигурации базы данных и основных настроек сайта SuiteCRM.

Alt-описание: Выбор импортируемых демо-данных при установке SuiteCRM.

Alt-описание: Экран настройки SMTP для отправки почты из SuiteCRM (пример для Gmail).

Alt-описание: Настройки локали (временной зоны, формат времени, валюта) и опции безопасности сайта.
После успешной установки вы попадёте на страницу логина:

Alt-описание: Экран входа в SuiteCRM.
Не забудьте удалить каталог install для безопасности:
rm -rf /var/www/html/install/Перейдите в панель администратора, используя учётные данные, указанные при установке.

Alt-описание: Дашборд SuiteCRM после успешной установки.
Перенаправление на HTTPS через .htaccess
Отредактируйте .htaccess в корне сайта:
nano /var/www/html/.htaccessНайдите
# Redirect to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L] Дополнительно в .htaccess можно задать php_value директивы (в зависимости от конфигурации Apache — некоторые значения могут игнорироваться):
# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 100M
php_value post_max_size 100MПримечание: register_globals=1 считается небезопасным для современных приложений — в большинстве случаев его следует установить в 0. Здесь приведён пример из исходного руководства; адаптируйте под безопасность вашей среды.
Настройка Cron для SuiteCRM
Для выполнения планировщика задач SuiteCRM добавьте cron для пользователя www-data:
crontab -e -u www-dataДобавьте строку (выполнять каждую минуту):
* * * * * /usr/bin/php7.0 -f /var/www/html/cron.php > /dev/null 2>&1Cron обеспечивает выполение запланированных задач: отправку уведомлений, обновление очередей и т. д.
TLS: само-подписанный сертификат vs Let’s Encrypt
При установке Apache автоматически может быть создан self-signed сертификат, который вызывает предупреждение в браузере. Для production используйте сертификат от доверенного CA или бесплатный Let’s Encrypt:
Установка certbot (Debian 9):
apt install certbot python-certbot-apache -y
certbot --apache -d yourdomain.tld -d www.yourdomain.tldСледуйте подсказкам certbot для автоматической конфигурации HTTPS и редиректа.
Безопасность и hardening (рекомендации)
- Удалите или ограничьте доступ к install/ и admin-скриптам после установки.
- Обновляйте систему и пакеты: apt update && apt upgrade регулярно.
- Отключите ненужные PHP-расширения.
- Ограничьте доступ к MySQL по сети (root только local).
- Ограничьте доступ к /var/www/html/.git и резервным копиям.
- Регулярно делайте бэкапы файлов и базы (см. ниже).
- Используйте HTTP Headers: Content-Security-Policy, X-Frame-Options, X-Content-Type-Options.
- Для входа в админку используйте двухфакторную аутентификацию, если модуль доступен.
Резервное копирование и восстановление
Рекомендуемая схема:
- Файлы приложения: /var/www/html — архивируйте (tar.gz) и храните вне сервера.
- База данных: ежесуточный дамп через mysqldump.
Пример простого бэкап-скрипта:
#!/bin/bash
TIMESTAMP=$(date +"%F-%H%M")
BACKUP_DIR="/var/backups/suitecrm"
mkdir -p "$BACKUP_DIR"
# Файлы
tar -czf "$BACKUP_DIR/suitecrm-files-$TIMESTAMP.tar.gz" -C /var/www html
# БД
mysqldump -u root -p'YOUR_ROOT_PASS' mycrm_db > "$BACKUP_DIR/suitecrm-db-$TIMESTAMP.sql"Храните пароли вне скриптов (в .my.cnf с ограниченным доступом) или используйте секретный менеджер.
Тестирование и приёмка
Критерии приёмки (минимальный набор для успешной установки):
- Страница входа SuiteCRM доступна по HTTPS.
- Вход в админ-панель с учётными данными администратора успешен.
- Cron выполняет задания (проверьте логи и последние выполненные задачи).
- Отправка почты работает (проверьте тестовый email через интерфейс).
- Права на файлы установлены: www-data владелец файлов и папок, нет лишних прав 777.
Роль‑ориентированные чеклисты
Чеклист для системного администратора:
- Обновить систему и установить LAMP
- Настроить hostnames и DNS
- Установить и настроить firewall
- Получить TLS-сертификат
- Настроить cron и резервное копирование
Чеклист для DBA:
- Создать базу данных и пользователя
- Протестировать подключение из PHP
- Настроить регулярный mysqldump и проверку целостности
Чеклист для администратора SuiteCRM (бизнес-пользователь):
- Завести администратора приложения
- Настроить SMTP отправку
- Настроить локаль, валюту и единицы измерения
- Подключить модули (Sales, Marketing и т. д.)
Отладка — распространённые проблемы и решения
- Ошибка прав доступа при записи в кэш и upload: проверьте chown -R www-data:www-data /var/www/html и права директорий (обычно 755 для папок и 644 для файлов).
- Ошибки PHP (memory_limit или max_execution_time): увеличьте лимиты в /etc/php/7.0/apache2/php.ini.
- Ошибки подключения к БД: проверьте host, порт, логин/пароль и что MariaDB слушает локально.
- SMTP не отправляет почту: проверьте, разрешён ли исходящий порт 587/465 у провайдера, верны ли настройки и пароль.
- Cron не выполняется: проверьте crontab пользователя www-data и права на /usr/bin/php7.0.
Альтернативные подходы
- Docker: запускайте SuiteCRM в контейнере (официальные/сообщества образы) для упрощённого развертывания и изоляции зависимостей.
- Использование nginx вместо Apache: nginx + php-fpm часто даёт лучшую производительность при высокой нагрузке.
- Managed hosting CRM: использовать SaaS-решение или управляемый хостинг SuiteCRM, если не хотите вести инфраструктуру.
Миграция и совместимость
- При обновлении SuiteCRM между мажорными версиями следуйте официальным инструкциям по миграции.
- Если вы планируете перейти на Debian 10/11, учтите более новые версии PHP (7.3/7.4/8.0) — проверьте совместимость SuiteCRM с версией PHP перед апгрейдом.
Мини‑методология внедрения SuiteCRM (high‑level)
- Оценка: функциональные требования, объём данных, интеграции.
- Подготовка инфраструктуры: тестовый и production-серверы.
- Установка и базовая конфигурация (этот документ).
- Миграция данных и настройка модулей.
- Тестирование (приёмочные тесты, нагрузочные тесты).
- Ввод в эксплуатацию и обучение пользователей.
- Поддержка и регулярное обновление.
Краткая таблица совместимости (на момент Debian 9)
- Debian 9 — PHP 7.0 — MariaDB 10.1 — SuiteCRM 7.9.x: совместимо
- Новые версии SuiteCRM могут требовать более новых версий PHP — проверьте релиз-ноты
Практические советы по производительности
- Используйте OPCache и увеличьте opcache.max_accelerated_files при большом количестве файлов/модулей.
- Настройте swap, если RAM ограничена, но помните, что swap замедляет работу при высокой нагрузке.
- Включите gzip/deflate в Apache для снижения трафика.
- Настройте HTTP/2 при использовании TLS (Apache mod_http2).
Безопасность данных и GDPR (замечания)
Если вы храните персональные данные граждан ЕС, убедитесь, что:
- Собраны юридически корректные согласия.
- Обеспечен контроль доступа и журналы аудита.
- Выполняется процедура удаления данных по запросу (ERASURE).
- Резервные копии зашифрованы и хранятся безопасно.
Это общие рекомендации — для соответствия GDPR проконсультируйтесь с юристом.
Критерии приёмки
- Система доступна по HTTPS и логин возможен.
- Бэкап файлов и базы выполняется без ошибок.
- Cron задачи выполняются регулярно и без ошибок.
- Админ может отправлять тестовые письма через SMTP.
Шаблон проверки после установки (SOP)
- Проверить статус Apache: systemctl status apache2
- Проверить статус MariaDB: systemctl status mariadb
- Проверить права в /var/www/html: ls -al
- Убедиться, что .htaccess содержит редирект на HTTPS
- Убедиться, что install/ удалён
- Выполнить тестовую отправку письма через админ-панель
- Настроить ежедневный бэкап (и пробную процедуру восстановления)
FAQ
Q: Можно ли использовать более новую версию PHP? A: Да, но проверьте совместимость SuiteCRM с версией PHP и установите нужные расширения.
Q: Как сделать автоматические обновления ОС? A: Настройте unattended-upgrades, но тестируйте обновления в staging перед применением в production.
Q: Где хранить логи SuiteCRM? A: Логи приложения по умолчанию в /var/www/html; убедитесь, что доступ к ним ограничен.
Короткое объявление для команды (100–200 слов)
Установлен и настроен SuiteCRM 7.9.9 на Debian 9 с использованием стека Apache/PHP7.0/MariaDB. Включены основные модули (Sales, Marketing, Service, Projects), настроен доступ по HTTPS (рекомендуется заменить само-подписанный сертификат на Let’s Encrypt или коммерческий), добавлен cron для выполнения планировщика и подготовлены инструкции по бэкапу. Администраторы могут войти в систему по URL: https://yourdomain.tld и продолжить настройку бизнес-процессов. Для вопросов по доступам и интеграции — обратитесь к системному администратору.
Социальный превью (OG)
OG Title: Установка SuiteCRM на Debian 9 — LAMP OG Description: Пошаговая инструкция по установке и настройке SuiteCRM 7.9.9 на Debian 9 с Apache, PHP 7.0 и MariaDB — безопасность, cron, HTTPS.
Ресурсы
- Официальный сайт SuiteCRM: https://suitecrm.com/download/
- PHP timezone list: http://php.net/manual/en/timezones.php
- Let’s Encrypt: https://letsencrypt.org
- MariaDB documentation: https://mariadb.org
Это руководство покрывает большинство шагов для базовой и безопасной установки SuiteCRM на Debian 9. Для боевого развёртывания дополнительно настройте мониторинг, автоматизированное резервное копирование, систему логирования и регулярные обновления.