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

Установка SuiteCRM на Ubuntu 16.04 с Nginx, PHP-FPM и MariaDB

7 min read CRM Обновлено 27 Nov 2025
Установка SuiteCRM на Ubuntu 16.04
Установка SuiteCRM на Ubuntu 16.04

Кратко: пошаговая инструкция по установке открытого CRM SuiteCRM на Ubuntu 16.04 с Nginx, PHP‑FPM и MariaDB. Включены подготовка сервера, установка компонентов, настройка SSL (Let’s Encrypt), конфигурация Nginx, настройка cron‑заданий, рекомендации по безопасности и чек‑листы для приёмки.

Важно: Ubuntu 16.04 устарела по современным стандартам — по возможности планируйте миграцию на LTS‑версию (20.04/22.04) после тестов.

Что мы сделаем

  1. Установим веб‑сервер Nginx
  2. Установим и настроим PHP‑FPM
  3. Установим и настроим MariaDB
  4. Скачаем и подготовим SuiteCRM
  5. Пройдём веб‑инсталлятор SuiteCRM
  6. Финальные шаги: cron, права, безопасность

Требования

  • Сервер Ubuntu 16.04 (root или sudo)
  • Доступ к интернету для скачивания пакетов и сертификатов
  • Домен, указывающий на ваш сервер (нужен для Let’s Encrypt)

Шаг 1 — Установка Nginx

SuiteCRM — веб‑приложение, поэтому нужен веб‑сервер. Здесь используется Nginx.

Подключитесь к серверу и обновите репозитории:

ssh [email protected]
sudo apt update

Установите Nginx:

apt install -y nginx

Запустите и включите автозапуск:

systemctl start nginx
systemctl enable nginx

Проверьте, что Nginx слушает 80‑й порт:

netstat -plntu
curl -I localhost

Установка Nginx

ALT: Скриншот успешной установки и запуска Nginx на Ubuntu с выводом статуса HTTP

Шаг 2 — Установка и настройка PHP‑FPM

SuiteCRM совместим с несколькими версиями PHP. В исходном руководстве использовался PHP 7.0. Если у вас старый релиз Ubuntu, используйте доступную версию PHP от репозиториев или репозитории с поддержкой нужной версии.

Установим PHP и необходимые расширения (пример для PHP 7.0):

apt install -y php7.0-fpm php7.0-mcrypt php7.0-imap php7.0-curl php7.0-cli php7.0-mysql php7.0-gd php7.0-xsl php7.0-json php7.0-intl php-pear php7.0-dev php7.0-common php7.0-mbstring php7.0-zip php-soap libcurl3 curl

Перейдите в каталог конфигурации PHP:

cd /etc/php/7.0/

Отредактируйте php.ini для cli и fpm:

vim cli/php.ini
vim fpm/php.ini

Обязательная настройка для SuiteCRM:

  • увеличить upload_max_filesize до 100M (SuiteCRM требует минимум ~6M)
upload_max_filesize = 100M
  • установить cgi.fix_pathinfo в 0
cgi.fix_pathinfo=0
  • убедиться, что указана директория сессий
session.save_path = "/var/lib/php/sessions"

Создайте директорию для сессий и назначьте владельца www‑data:

mkdir -p /var/lib/php/sessions
chown -R www-data:www-data /var/lib/php/sessions

Запустите и включите PHP‑FPM:

systemctl start php7.0-fpm
systemctl enable php7.0-fpm

Проверьте, что PHP‑FPM слушает unix‑сокет:

netstat -pl | grep php

Установка PHP

ALT: Скриншот вывода проверки PHP‑FPM и состояния сокета на сервере

Примечание: если вы используете более новую Ubuntu, названия пакетов и пути к сокету будут отличаться (например, php7.4-fpm и /run/php/php7.4-fpm.sock).

Шаг 3 — Установка и настройка MariaDB

Установим MariaDB и настроим root‑пароль, затем создадим базу и пользователя для SuiteCRM.

apt install -y mariadb-server mariadb-client

Запустите сервис и включите автозапуск:

systemctl start mysql
systemctl enable mysql

Защитите установку и задайте пароль root:

mysql_secure_installation

Ответьте “Y” на предлагаемые вопросы (удаление анонимных пользователей, запрет удалённого входа root и т.д.).

Создайте базу данных и пользователя (пример):

mysql -u root -p
# Введите пароль root

CREATE DATABASE suitecrm_db;
CREATE USER 'crmadmin'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON suitecrm_db.* TO 'crmadmin'@'localhost';
FLUSH PRIVILEGES;

Установка и настройка MariaDB

ALT: Скриншот команд создания базы данных и пользователя в MariaDB

Совет по безопасности: используйте надежный пароль и ограничьте доступ к базе по необходимости (например, через локальный сокет или firewall).

Шаг 4 — Скачивание и подготовка SuiteCRM

Задачи на этом этапе: скачать исходники SuiteCRM, настроить права, корректно открыть порты на firewall, получить SSL‑сертификат и настроить виртуальный хост Nginx.

  • Скачиваем код

Убедитесь, что git установлен:

apt install -y git

Клонируйте репозиторий в /opt:

cd /opt/
git clone https://github.com/salesagility/SuiteCRM.git suitecrm

Перейдите в каталог и подготовьте папки и права:

cd /opt/suitecrm
mkdir -p /opt/suitecrm/cache
chmod -R 775 cache custom modules themes data upload config_override.php
chown www-data:www-data -R /opt/suitecrm

Скачивание SuiteCRM

ALT: Скриншот файловой структуры SuiteCRM после клонирования и изменения прав

  • Настройка UFW

Откройте SSH, HTTP и HTTPS:

ufw allow ssh
ufw allow http
ufw allow https
ufw enable

Проверьте статус:

ufw status

Настройка UFW

ALT: Скриншот статуса UFW с открытыми портами SSH, HTTP и HTTPS

  • Получение сертификата Let’s Encrypt

Для HTTPS мы используем бесплатные сертификаты от Let’s Encrypt. Установите клиента certbot/letsencrypt:

apt install -y letsencrypt

Остановите Nginx на время получения сертификата (certbot запустит временный сервер):

systemctl stop nginx

Получите сертификат (пример для домена suitecrm.hakase-labs.co):

letsencrypt certonly --standalone -d suitecrm.hakase-labs.co

Во время генерации укажите ваш email и согласитесь с соглашением Let’s Encrypt.

Создание сертификата Let's Encrypt

ALT: Скриншот процесса ввода email для Let’s Encrypt

Сертификаты появятся в /etc/letsencrypt/live/<ваш_домен>.

SSL сертификат создан

ALT: Скриншот успешной генерации сертификата и пути сохранения

  • Настройка Nginx virtual host

Создайте файл /etc/nginx/sites-available/suitecrm с конфигурацией ниже (пример):

# Server Config - hakase-labs
 server {
     listen 80;
     server_name suitecrm.hakase-labs.co;

     # Automatically redirect to HTTPS
     return 301 https://$host$request_uri;
 }

 # Nginx SSL for SuiteCRM
 server {

     server_name suitecrm.hakase-labs.co;

     # Enable http2
     listen 443 http2 ssl;

     # SSL Config
     ssl_certificate /etc/letsencrypt/live/suitecrm.hakase-labs.co/fullchain.pem;
     ssl_certificate_key /etc/letsencrypt/live/suitecrm.hakase-labs.co/privkey.pem;
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
     ssl_ciphers HIGH:!aNULL:!MD5;

     client_max_body_size 50M;

     index index.php index.html index.htm;
     root /opt/suitecrm;

     location / {
         root /opt/suitecrm;
         index index.php index.html index.htm;
     }

     error_page 500 502 503 504 /50x.html;
     error_log /var/log/nginx/suitecrm.irsyadf.me.error.log;

     location = /50x.html {
         root /var/www/html;
     }

     ## Images and static content is treated different
     location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml|svg|wgoff2)$ {
         access_log off;
         expires max;
         root /opt/suitecrm;
     }

     location ~ \.php$ {
         try_files $uri =404;
         fastcgi_pass unix:/run/php/php7.0-fpm.sock;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
     }

     location ~ /\.ht {
         deny all;
     }

 }

Активируйте виртуальный хост, проверьте конфигурацию и перезапустите Nginx:

ln -s /etc/nginx/sites-available/suitecrm /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

После этого веб‑сервер будет принимать HTTPS‑запросы для вашего домена.

Шаг 5 — Веб‑инсталлятор SuiteCRM

Откройте в браузере https://suitecrm.hakase-labs.co (замените домен на ваш).

Вы увидите страницу install.php и лицензию GNU AGPL. Примите лицензию и перейдите дальше.

Проверьте системные требования на странице проверок. Все пункты должны показывать OK.

SuiteCRM Installer

ALT: Скриншот страницы установщика SuiteCRM с предложением принять лицензию

Заполните параметры базы данных: имя базы suitecrm_db, пользователь crmadmin и пароль hakase-labs123. Задайте данные администратора SuiteCRM.

Конфигурация базы и сайта

ALT: Скриншот страницы ввода настроек базы данных и административных данных

Запустите установку и дождитесь завершения. После успешной установки вы попадёте на страницу входа.

Вход в SuiteCRM

ALT: Скриншот страницы входа SuiteCRM после установки

Войдите под администратором и проверьте стандартную панель управления.

Панель SuiteCRM

ALT: Скриншот стандартной панели SuiteCRM после первой авторизации

Шаг 6 — Финальные шаги

Добавьте cron‑задачу от имени www‑data для запуска встроенных задач SuiteCRM:

sudo crontab -e -u www-data

Вставьте строку:

*    *    *    *    *     cd /opt/suitecrm; php -f cron.php > /dev/null 2>&1

Сохраните и перезапустите cron:

systemctl restart cron

Проверьте, что cron выполняет задания (по логам SuiteCRM или по изменению timestamp в файлах).

Контрольные проверки и приёмка

Критерии приёмки

  • Веб‑интерфейс доступен по HTTPS без предупреждений браузера
  • Успешный вход под админом и загрузка дашборда
  • Cron выполняется каждую минуту (проверяется по логам SuiteCRM)
  • Права на /opt/suitecrm установлены для www‑data
  • Бэкап конфигураций и базы данных созданы

Пост‑проверки

  • nginx -t проходит без ошибок
  • mysql доступен локально для пользователя crmadmin
  • сертификат Let’s Encrypt корректно установлен в /etc/letsencrypt/live

Рекомендации по безопасности

  • Используйте сильные пароли для базы и админа
  • Закройте доступ к серверу по SSH для неавторизованных пользователей, включите ключи
  • Настройте регулярное резервное копирование (файлы + дамп БД)
  • Обновляйте ОС и пакеты; планируйте переход с Ubuntu 16.04 на более новые LTS
  • Минимизируйте набор установленных PHP расширений
  • Настройте мониторинг логов и SLO для критичных сервисов

Таблица совместимости — ориентир

  • Ubuntu 16.04: совместимо с PHP 7.0 (как в инструкции), но лучше использовать Ubuntu 18.04/20.04 с PHP 7.2–7.4
  • MariaDB: 10.x обычно подходит; проверяйте требования версии SuiteCRM
  • Nginx: любая современная версия; важен корректный fastcgi_pass для php‑fpm

Примечание: точные версии зависят от релиза SuiteCRM. Всегда проверяйте официальную документацию SuiteCRM перед продакшен‑развёртыванием.

Рольные чек‑листы

Администратор инфраструктуры

  • Настроил DNS и домен
  • Настроил UFW
  • Установил и настроил Nginx, PHP‑FPM, MariaDB
  • Настроил автоматические обновления ОС (по возможности тестово)

Администратор приложения

  • Скачал SuiteCRM и назначил права (www‑data)
  • Прогнал веб‑инсталлятор и проверил систему
  • Настроил cron и подтвердил выполнение задач
  • Сделал бэкап конфигурации и базы

Оператор безопасности

  • Проверил HTTPS и цепочку сертификатов
  • Настроил журналы и ротацию логов
  • Настроил бэкап и проверил восстановление

SOP — быстрый план установки (4 шага)

  1. Подготовка сервера: обновить пакеты, настроить UFW, DNS
  2. Установка стека: nginx, php‑fpm, mariadb
  3. Подготовка SuiteCRM: клонирование, права, SSL, конфиг nginx
  4. Установка через веб, проверка cron, снэпшот системы и бэкап БД

Диагностика часто встречаемых проблем

Проблема: Страница установщика не открывается

  • Проверьте nginx (nginx -t и systemctl status nginx)
  • Проверьте, что порт 443 открыт (ufw status)
  • Убедитесь, что сертификат находится в указанном пути

Проблема: 502 Bad Gateway при обращении к PHP

  • Убедитесь, что PHP‑FPM работает и путь сокета совпадает в конфиге nginx
  • Выполните systemctl status php7.0-fpm и journalctl -u php7.0-fpm

Проблема: Ошибки записи файлов в SuiteCRM

  • Проверьте права на директории /opt/suitecrm, особенно upload, cache, custom
  • chown -R www-data:www-data /opt/suitecrm
  • chmod корректно на папках, не давая 777 в продакшене

Советы по обновлению и миграции

  • При переходе на новую Ubuntu или новую версию PHP сперва протестируйте всё на копии сервера
  • Проверьте совместимость PHP‑расширений и версий MariaDB
  • Экспортируйте базу и файлы перед обновлением, делайте бэкап

FAQ

Q: Можно ли использовать Apache вместо Nginx? A: Да. SuiteCRM совместим с Apache и Nginx. Для Apache потребуется настроить mod_php или php‑fpm и соответствующие правила для .htaccess/rewrites.

Q: Нужно ли ставить Let’s Encrypt в продакшен? A: Рекомендуется использовать действительный сертификат для защиты данных. Let’s Encrypt — бесплатный и автоматизируемый вариант.

Q: Как часто обновлять SuiteCRM? A: Обновляйте в соответствии с политикой стабильности вашей организации. На тестовой среде проверяйте обновления перед применением в продакшене.

Резюме

  • Инструкция покрывает полный путь: от установки стека до запуска SuiteCRM через веб‑инсталлятор.
  • Обязательно проверьте права, cron и SSL.
  • Планируйте миграцию с Ubuntu 16.04 на более новый LTS для устойчивой поддержки.

Источники

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

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство