Установка EspoCRM на Debian 9 (LAMP)
О чём будет руководство
Это руководство проведёт вас через полный процесс установки EspoCRM на Debian 9 с использованием стека LAMP. Подходит для развёртывания на виртуальной машине или физическом сервере, в локальной сети или в публичном интернете. Здесь вы найдёте команды, примерные конфигурации, рекомендации по безопасности и чек‑листы для ролей (администратор, DevOps, оператор поддержки).
Основные требования
- Debian 9 (Stretch) установленный на виртуальной машине или физическом сервере
- root‑доступ или учётная запись с sudo
- Один из сетевых интерфейсов настроен на статический IP (если нужно)
- Доменное имя (рекомендуется для HTTPS); в локальной сети можно использовать IP или локальный домен
- Доступ к почтовому серверу (локальному или внешнему: Gmail, Outlook и т.п.)
Краткий список задач (чек‑лист)
- Обновить систему и перезагрузить ядро
- Установить Apache, PHP 7.0 с требуемыми модулями
- Установить MariaDB и выполнить mysql_secure_installation
- Настроить php.ini и OPCache
- Открыть порты в брандмауэре (UFW или iptables)
- Установить EspoCRM, задать права и создать базу
- Настроить SSL (Let’s Encrypt) и принудительное перенаправление на HTTPS
- Добавить cron‑задание для cron.php
- Настроить резервное копирование и мониторинг
Предварительные действия — обновление системы
Сначала подключитесь к консоли сервера и обновите репозитории и пакеты:
apt updateapt upgradeНастройте hostname сервера (замените пример на своё имя):
hostnamectl set-hostname www.mycrm.orgПроверьте текущие значения hostname:
hostnamectlcat /etc/hostnamehostname -shostname -fПримените обновления и изменения hostname перезагрузкой:
systemctl rebootУстановка LAMP (Apache, PHP, MariaDB)
Установка Apache и PHP вместе с необходимыми модулями для EspoCRM:
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 php7.0-soap php7.0-mcrypt php-mailparseУстановка MariaDB серверной части и PHP‑модуля для работы с MySQL/MariaDB:
apt install mariadb-server php7.0-mysql mariadb-clientПосле установки откройте php.ini для Apache и сделайте резервную копию перед изменениями:
cp /etc/php/7.0/apache2/php.ini{,.backup}Редактирование основых переменных PHP:
nano /etc/php/7.0/apache2/php.iniНайдите и измените (или добавьте) следующие параметры:
file_uploads = On
default_charset = "UTF-8"
memory_limit = 256M
post_max_size = 50M
upload_max_filesize = 50M
max_input_time = 180
max_execution_time = 180
zend.assertions = 0
date.timezone = Europe/LondonЗамените значение date.timezone на ваш часовой пояс, например Europe/Moscow. Список доступных часовых зон: http://php.net/manual/en/timezones.php
Включение OPCache
Для ускорения работы приложений в PHP добавьте настройки OPCache в конец php.ini (в секцию [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Проверьте, что параметры добавлены (команда вернёт непомещённые комментированные строки):
grep opcache /etc/php/7.0/apache2/php.ini | grep -v ";"Настройка брандмауэра (UFW или iptables)
Разрешите HTTP и HTTPS через UFW:
ufw allow WWWили
ufw allow 80/tcp
ufw allow 443/tcpЕсли вы используете iptables и предпочитаете сохранять правила между перезагрузками:
apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl enable netfilter-persistent.serviceПосле открытия портов откройте в браузере IP сервера или домен по HTTP (например http://your_domain.tld). Если всё в порядке — увидите дефолтную страницу Apache.
Включение модулей Apache и SSL
Включите модули rewrite, deflate и ssl:
a2enmod rewrite deflate sslВключите сайт с SSL конфигурацией:
a2ensite default-ssl.confОткройте SSL конфигурацию и активируйте AllowOverride для DocumentRoot (нужно для чтения .htaccess):
nano /etc/apache2/sites-enabled/default-ssl.confВставьте после директивы DocumentRoot следующие строки:
Options +FollowSymlinks
AllowOverride All
Require all granted
То же самое добавьте в /etc/apache2/sites-enabled/000-default.conf, чтобы HTTP‑виртуалхост тоже разрешал .htaccess.
Перезапустите Apache:
systemctl restart apache2Теперь вы можете перейти по HTTPS. При использовании самоподписанного сертификата браузер покажет предупреждение — можно принять исключение для тестовой среды.

Совет: для production используйте сертификат от доверенного центра (Let’s Encrypt или платный CA).
Проверка PHP: phpinfo
Создайте файл info.php для проверки текущих настроек PHP:
echo ''| tee /var/www/html/info.phpОткройте https://domain.tld/info.php и убедитесь, что date.timezone и модули PHP соответствуют требованиям.
Настройка MariaDB (безопасность)
Войдите в MariaDB и подготовьте сервер:
mysql -h localhostВ консоли выполните (если требуется) переключение плагина аутентификации для локального root:
use mysql;
update user set plugin='' where user='root';
flush privileges;
exitЗапустите скрипт mysql_secure_installation и ответьте «yes» на рекомендуемые вопросы (смена пароля root, удаление анонимных пользователей, запрет удалённого root, удаление тестовой базы):
mysql_secure_installationПроверьте, что вход без пароля запрещён:
mysql -h localhost -u rootДолжна появиться ошибка доступа. Войдите с паролем:
mysql -h localhost -u root -pУстановка клиентских инструментов и скачивание EspoCRM
Установите утилиты:
apt install wget bash-completion zip unzip curlСкачайте последнюю версию EspoCRM с официального сайта. В примере используется релиз 5.0.3 (замените на актуальную версию):
wget https://www.espocrm.com/downloads/EspoCRM-5.0.3.zipРаспакуйте архив:
unzip EspoCRM-5.0.3.zip
ls -al EspoCRM-5.0.3Удалите дефолтные файлы Apache из webroot:
rm /var/www/html/index.html
rm /var/www/html/info.phpСкопируйте содержимое распакованной папки в DocumentRoot и не забудьте .htaccess:
cp -rf EspoCRM-5.0.3/* /var/www/html/
cp EspoCRM-5.0.3/.htaccess /var/www/html/Установите владельца Apache (www-data) на файловую систему:
chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/Важно: убедитесь, что никакие критичные конфигурационные файлы не имеют прав 777 — это риск безопасности.
Создание базы данных и пользователя EspoCRM
Войдите в MariaDB и создайте базу и пользователя (замените espocrm_db, crm_user и пароль на свои значения):
mysql -u root -p
create database espocrm_db;
grant all privileges on espocrm_db.* to 'crm_user'@'localhost' identified by 'password1234';
flush privileges;
exitЗапуск веб‑инсталлятора EspoCRM
Откройте в браузере ваш домен по HTTPS (https://yourdomain.tld). Инсталлятор покажет серию экранов:
- Выбор языка и приветствие

- Принятие лицензионного соглашения

- Ввод настроек подключения к базе данных (host, имя базы, пользователь, пароль)

- Проверка рекомендуемых настроек сервера и модулей PHP

- Создание учётной записи администратора

- Установка формата даты/времени, часового пояса, валюты и локализации

- Настройка исходящей почты (SMTP)

После успешной установки инсталлятор попросит добавить cron‑задачу и выведет уведомление об успешной установке.

Войдите в панель управления (https://yourdomain.tld) под созданным администратором.

Панель по умолчанию пустая:

Принудительное перенаправление на HTTPS
Откройте .htaccess в корне веб‑сайта:
nano /var/www/html/.htaccessНайдите
# Redirect to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L] Изменение PHP‑параметров через .htaccess
Если требуется увеличить максимальный размер загрузки:
# 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Внимание: изменения в .htaccess влияют на Apache‑модуль PHP (mod_php). Если вы используете PHP‑FPM, правки в .htaccess не подействуют — изменяйте php.ini или пул www‑data.
Cron: тест и добавление задания
Сначала протестируйте выполнение cron.php от имени www‑data:
sudo -u www-data /usr/bin/php7.0 -f /var/www/html/cron.phpЕсли ошибок нет, добавьте cron‑задание для пользователя www‑data:
crontab -u www-data -eВставьте строку:
* * * * * /usr/bin/php7.0 -f /var/www/html/cron.php > /dev/null 2>&1Это позволит EspoCRM выполнять фоновые задания каждую минуту, как рекомендовано документацией.
Рекомендации по безопасности и эксплуатации
- SSL: используйте Let’s Encrypt для автоматического получения и обновления сертификатов (certbot). Пример для Apache:
apt install certbot python-certbot-apache
certbot --apache -d yourdomain.tld- Ограничьте доступ к панели администратора по IP (если возможно).
- Настройте fail2ban для защиты SSH и (при желании) веб‑интерфейса.
- Регулярно обновляйте систему и EspoCRM.
- Не используйте пароли по умолчанию; храните секреты в защищённом хранилище.
- Установите мониторинг (Prometheus/Grafana, Zabbix, или другой инструмент) и оповещения.
Резервное копирование и восстановление
Рекомендуется иметь два основных вида резервных копий:
- Бэкап базы данных (mysqldump):
mysqldump -u root -p espocrm_db > /backup/espocrm_db_$(date +%F).sql- Бэкап файлов приложения и пользовательских загрузок:
tar -czvf /backup/espocrm_files_$(date +%F).tar.gz /var/www/htmlПланируйте регулярное копирование резервов на отдельный сервер или в облачное хранилище.
Отладка — частые проблемы и решения
- Ошибка «Permission denied» при загрузке файлов — проверьте права и владельца папок (www‑data:www‑data).
- Ошибки PHP: проверьте журнал Apache (/var/log/apache2/error.log) и включите display_errors только в тестовой среде.
- Проблемы с подключением к базе — проверьте, что MariaDB слушает локально и что учётные данные в инсталляторе верны.
- Ошибки HTTPS — проверьте сертификат и настройки VirtualHost, убедитесь что в брандмауэре открыт 443 порт.
Советы по производительности
- Увеличьте значения OPCache в соответствии с нагрузкой.
- Используйте кеширование на уровне HTTP (gzip/deflate уже включён) и при большом трафике рассмотрите фронт‑кеширование через Nginx или CDN.
- Вертикальное масштабирование: больше памяти/CPU для PHP‑процессов; горизонтальное: настройка балансировщика и общая база данных.
Альтернативные подходы
- Nginx вместо Apache (часто даёт более лёгкую нагрузку и простое проксирование к PHP‑FPM).
- Контейнеризация: запуск EspoCRM в Docker‑контейнере с готовыми образами (быстрая развёртка и портативность).
- Управляемые платформы: запуск в PaaS, если нужна минимальная администрирование инфраструктуры.
Критерии приёмки
- Веб‑интерфейс доступен по HTTPS без критических ошибок.
- Вход в панель под созданным администратором проходит успешно.
- cron.php исполняется от имени www‑data и не возвращает ошибок.
- Резервное копирование базы и файлов проходит корректно.
- Установлены обновления безопасности для ОС и PHP.
Ролевые чек‑листы
Администратор приложения:
- Проверить доступ администратора и функциональность (создать тестовый контакт, отправить письмо).
- Настроить локализацию/валюту/рабочие процессы.
Системный администратор/DevOps:
- Установить SSL (Let’s Encrypt) и автоматическое обновление.
- Настроить систему резервного копирования и мониторинга.
- Обеспечить брандмауэр и fail2ban.
Поддержка / оператор:
- Проверить логи ошибок при обращениях пользователей.
- Выполнять регулярные проверки cron и очередей задач.
Мини‑методика быстрого восстановления (SOP)
- При проблеме: проверить состояние службы Apache и MariaDB:
systemctl status apache2
systemctl status mariadb- Проверить журналы:
tail -n 200 /var/log/apache2/error.log
tail -n 200 /var/log/mysql/error.log- Если база повреждена — восстановить из последнего дампа:
mysql -u root -p espocrm_db < /backup/espocrm_db_YYYY-MM-DD.sql- Если файлы приложения повреждены — восстановить архив и вернуть права владельцу www‑data.
Совместимость и миграция
- EspoCRM поддерживает MySQL и MariaDB последних стабильных веток; при переходе между версиями проверьте совместимость схемы.
- Если вы переходите на более новую версию PHP (7.1/7.2+), протестируйте функциональность в тестовой среде до релиза в прод.
Шаблоны команд и чек‑лист для быстрой установки (копировать/вставить)
- Обновление системы:
apt update && apt upgrade -y && systemctl reboot- Установка LAMP и модулей:
apt install -y 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 php7.0-soap php7.0-mcrypt php-mailparse mariadb-server php7.0-mysql- Установка утилит и скачивание EspoCRM:
apt install -y wget zip unzip curl bash-completion
wget https://www.espocrm.com/downloads/EspoCRM-5.0.3.zip
unzip EspoCRM-5.0.3.zip
cp -rf EspoCRM-5.0.3/* /var/www/html/
cp EspoCRM-5.0.3/.htaccess /var/www/html/
chown -R www-data:www-data /var/www/html/Когда этот подход не подходит (контрпример)
- Если инфраструктура должна поддерживать высокую масштабируемость с множеством фронт‑серверов и отдельной базой данных, классический LAMP на одной машине может оказаться узким местом. Рассмотрите контейнеризацию, балансировщики и выделенную СУБД.
- Для корпоративного уровня с жёсткими требованиями к аудиту и управлению доступом может потребоваться интеграция EspoCRM с LDAP/AD и дополнительная доработка безопасности.
Полезная справка — основные параметры
- Рекомендуемый memory_limit для PHP: 256M и выше
- upload_max_filesize / post_max_size: если ожидаются большие вложения — 100M
- OPCache.memory_consumption: минимум 128M для средних нагрузок
Принципиальная схема принятия решения (Mermaid)
graph TD
A[Есть Debian 9?] -->|Да| B[Установить LAMP]
A -->|Нет| C[Подготовить OS]
B --> D{Имеется домен и HTTPS?}
D -->|Да| E[Установить EspoCRM и SSL]
D -->|Нет| F[Установить EspoCRM, затем настроить SSL]
E --> G[Настроить cron и бэкапы]
F --> GРесурсы и примечания
- Официальная документация EspoCRM: https://www.espocrm.com/documentation/
- PHP timezones: http://php.net/manual/en/timezones.php
Краткое резюме
Вы успешно установили EspoCRM на Debian 9, настроили Apache, PHP и MariaDB, подготовили SSL и cron. Настройте автоматическое резервное копирование, мониторинг и регулярные обновления, чтобы поддерживать систему в рабочем и безопасном состоянии.
Важно: для production среды замените самоподписанные сертификаты на сертификаты от доверенного CA и ограничьте доступ по необходимости.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента