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

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

• 8 min read • DevOps • Обновлено 23 Nov 2025
Установка EspoCRM на Debian 9 (LAMP)
Установка 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 update
apt upgrade

Настройте hostname сервера (замените пример на своё имя):

hostnamectl set-hostname www.mycrm.org

Проверьте текущие значения hostname:

hostnamectl
cat /etc/hostname
hostname -s
hostname -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. При использовании самоподписанного сертификата браузер покажет предупреждение — можно принять исключение для тестовой среды.

SSL self signed certificate warning

Совет: для 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). Инсталлятор покажет серию экранов:

  • Выбор языка и приветствие

EspoCRM Welcome screen

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

Accept license agreement

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

Database details

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

Recommended settings

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

Set a username and password

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

Date and time settings

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

SMTP settings

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

EspoCRM installation complete

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

Log in to the CRM dashbaord

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

EspoCRM Dashboard

Принудительное перенаправление на HTTPS

Откройте .htaccess в корне веб‑сайта:

nano /var/www/html/.htaccess

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

# 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, или другой инструмент) и оповещения.

Резервное копирование и восстановление

Рекомендуется иметь два основных вида резервных копий:

  1. Бэкап базы данных (mysqldump):
mysqldump -u root -p espocrm_db > /backup/espocrm_db_$(date +%F).sql
  1. Бэкап файлов приложения и пользовательских загрузок:
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)

  1. При проблеме: проверить состояние службы Apache и MariaDB:
systemctl status apache2
systemctl status mariadb
  1. Проверить журналы:
tail -n 200 /var/log/apache2/error.log
tail -n 200 /var/log/mysql/error.log
  1. Если база повреждена — восстановить из последнего дампа:
mysql -u root -p espocrm_db < /backup/espocrm_db_YYYY-MM-DD.sql
  1. Если файлы приложения повреждены — восстановить архив и вернуть права владельцу www‑data.

Совместимость и миграция

  • EspoCRM поддерживает MySQL и MariaDB последних стабильных веток; при переходе между версиями проверьте совместимость схемы.
  • Если вы переходите на более новую версию PHP (7.1/7.2+), протестируйте функциональность в тестовой среде до релиза в прод.

Шаблоны команд и чек‑лист для быстрой установки (копировать/вставить)

  1. Обновление системы:
apt update && apt upgrade -y && systemctl reboot
  1. Установка 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
  1. Установка утилит и скачивание 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 на Debian 9, настроили Apache, PHP и MariaDB, подготовили SSL и cron. Настройте автоматическое резервное копирование, мониторинг и регулярные обновления, чтобы поддерживать систему в рабочем и безопасном состоянии.

Важно: для production среды замените самоподписанные сертификаты на сертификаты от доверенного CA и ограничьте доступ по необходимости.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро