Гид по технологиям

Установка SuiteCRM на Debian 9 (LAMP)

10 min read CRM Обновлено 25 Nov 2025
Установка SuiteCRM на Debian 9 — LAMP
Установка 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 для администратора

  1. Обновите систему: apt update && apt upgrade && reboot.
  2. Установите 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
  1. Установите MariaDB и модуль MySQL для PHP:
apt install mariadb-server php7.0-mysql mariadb-client
  1. Настройте MariaDB (mysql_secure_installation) и создайте базу/пользователя.
  2. Скачайте SuiteCRM, распакуйте и скопируйте файлы в /var/www/html, задайте владельца www-data.
  3. Настройте PHP (php.ini), включите OPCache, перезапустите Apache.
  4. Установите HTTPS (Let’s Encrypt/покупной сертификат) и добавьте редирект в .htaccess.
  5. Запустите установщик через браузер и завершите конфигурацию.

Подготовка сервера — подробности

Войдите на сервер как 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.

Apache web server on Debian

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 и серверную конфигурацию, ввести данные базы данных и администратора приложения, настроить почтовый сервер и локаль.

SuiteCRM setup wizard

Alt-описание: Скриншот мастера установки SuiteCRM: соглашение с лицензией и выбор языка.

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

System environment

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

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

Database and site configuration

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

Choose demo data import

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

SMTP server settings

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

Locale settings and site security

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

После успешной установки вы попадёте на страницу логина:

SuiteCRM Login

Alt-описание: Экран входа в SuiteCRM.

Не забудьте удалить каталог install для безопасности:

rm -rf /var/www/html/install/

Перейдите в панель администратора, используя учётные данные, указанные при установке.

SuideCRM Dashboard

Alt-описание: Дашборд SuiteCRM после успешной установки.

Перенаправление на HTTPS через .htaccess

Отредактируйте .htaccess в корне сайта:

nano /var/www/html/.htaccess

Найдите и после RewriteEngine On вставьте:

# 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>&1

Cron обеспечивает выполение запланированных задач: отправку уведомлений, обновление очередей и т. д.

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)

  1. Оценка: функциональные требования, объём данных, интеграции.
  2. Подготовка инфраструктуры: тестовый и production-серверы.
  3. Установка и базовая конфигурация (этот документ).
  4. Миграция данных и настройка модулей.
  5. Тестирование (приёмочные тесты, нагрузочные тесты).
  6. Ввод в эксплуатацию и обучение пользователей.
  7. Поддержка и регулярное обновление.

Краткая таблица совместимости (на момент 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)

  1. Проверить статус Apache: systemctl status apache2
  2. Проверить статус MariaDB: systemctl status mariadb
  3. Проверить права в /var/www/html: ls -al
  4. Убедиться, что .htaccess содержит редирект на HTTPS
  5. Убедиться, что install/ удалён
  6. Выполнить тестовую отправку письма через админ-панель
  7. Настроить ежедневный бэкап (и пробную процедуру восстановления)

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 на Debian 9. Для боевого развёртывания дополнительно настройте мониторинг, автоматизированное резервное копирование, систему логирования и регулярные обновления.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Фильтры и фоны в видео‑звонках WhatsApp
WhatsApp

Фильтры и фоны в видео‑звонках WhatsApp

Удалить альбомы в приложении Фото на Mac
macOS

Удалить альбомы в приложении Фото на Mac

Чистка картриджей Nintendo Switch — безопасно
Игры

Чистка картриджей Nintendo Switch — безопасно

Как протестировать микрофон в Windows 11
Windows

Как протестировать микрофон в Windows 11

Как отключить новые функции Firefox
браузер

Как отключить новые функции Firefox

Советы и хитрости Microsoft Edge
Браузеры

Советы и хитрости Microsoft Edge