Установка OroCRM на Ubuntu 16.04
Кратко: пошаговое руководство по установке OroCRM (ветка 2.4) на сервер с Ubuntu 16.04 — настройка LEMP (Nginx, MariaDB, PHP7.0), установка Node.js и Composer, конфигурация Nginx и базовые меры безопасности. Подойдёт для продакшн-сёрверов при условии дополнительной настройки прав и резервного копирования.
В этой статье вы найдёте подробные команды, конфигурационные фрагменты и чек-листы для быстрого развёртывания OroCRM 2.4 на Ubuntu 16.04.
OroCRM — это свободная CRM-платформа, ориентированная на e‑commerce и маркетинг с мультиканальным подходом. Приложение написано на PHP (Symfony) и использует MariaDB/MySQL для хранения данных. Существует Community Edition и Enterprise Edition. В этом руководстве показана установка ветки 2.4 на Ubuntu 16.04.
Важно: Ubuntu 16.04 уже устарела в пользовательских релизах; если вы разворачиваете новый проект, рассмотрите обновление ОС до поддерживаемой версии для долгосрочной безопасности.
Что понадобится
- Сервер с Ubuntu 16.04 (root-доступ или пользователь с sudo)
- Не‑root пользователь с правами sudo
- DNS/виртуальный хост или локальный доступ по IP
- Минимум 2 ГБ оперативной памяти для тестовой установки; для продакшна рекомендуется 4+ ГБ
Содержание
- Подготовка системы
- Установка LEMP (Nginx, MariaDB, PHP 7.0)
- Конфигурация MariaDB
- Установка Node.js и Composer
- Скачивание OroCRM и установка зависимостей
- Конфигурация Nginx
- Проверка, отладка и рекомендации по безопасности
Подготовка системы
Обновите пакеты и примените обновления:
sudo apt-get update -y
sudo apt-get upgrade -yПерезагрузите систему при необходимости. Затем установите утилиты:
sudo apt-get install git curl unzip wget -yУстановка LEMP (Nginx, MariaDB, PHP7.0)
Установите Nginx:
sudo apt-get install nginx -yЗапустите и включите автозапуск:
sudo systemctl start nginx
sudo systemctl enable nginxПо умолчанию в репозиториях Ubuntu 16.04 может не быть нужных версий MariaDB и PHP, поэтому добавим репозитории.
Добавьте ключ и репозиторий MariaDB 10.2:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://kartolo.sby.datautama.net.id/mariadb/repo/10.2/ubuntu xenial main'Добавьте PPA с версиями PHP:
sudo add-apt-repository ppa:ondrej/phpОбновите индексы и установите MariaDB и PHP 7.0 с необходимыми расширениями:
sudo apt-get update -y
sudo apt-get install mariadb-server php7.0 php7.0-fpm php7.0-common php7.0-curl php7.0-gd php7.0-intl php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-xml php7.0-zip php7.0-tidy php7.0-soap php7.0-opcache -yНастройка PHP
Отредактируйте конфигурацию CLI и FPM для зоны времени и лимита памяти:
sudo nano /etc/php/7.0/cli/php.iniНайдите и измените:
date.timezone = Asia/KolkataСохраните файл.
sudo nano /etc/php/7.0/fpm/php.iniУстановите лимит памяти:
memory_limit = 1024MСохраните и закройте.
Запустите службы MariaDB и PHP‑FPM и включите автозапуск:
sudo systemctl start mysql
sudo systemctl enable mysql
sudo systemctl start php7.0-fpm
sudo systemctl enable php7.0-fpmНастройка MariaDB для OroCRM
Сначала выполните стандартную процедуру безопасности MariaDB:
sudo mysql_secure_installationРекомендуемые ответы (пример):
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] YЗатем создайте базу и пользователя для OroCRM:
mysql -u root -pВ интерактивной оболочке MariaDB выполните:
CREATE DATABASE orodb;
CREATE USER 'orouser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON orodb.* TO 'orouser'@'localhost';
FLUSH PRIVILEGES;
EXITВажно: замените пароль на надёжный и храните его в менеджере секретов.
Установка Node.js и Composer
Node.js нужен для сборки фронтенд-ассетов, Composer — для PHP-зависимостей.
Добавьте репозиторий Node.js (v8 в этом руководстве):
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -Установите Node.js и Composer:
sudo apt-get install nodejs -y
sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php composer-setup.phpПереместите и сделайте исполняемым Composer:
sudo cp composer.phar /usr/bin/composer
sudo chmod 755 /usr/bin/composerСкачивание и установка OroCRM
Клонируйте репозиторий ветки 2.4 в /var/www/html/orocrm:
cd /var/www/html
sudo git clone -b 2.4 https://github.com/oroinc/crm-application.git orocrmПерейдите в каталог и установите зависимости через Composer:
cd orocrm
sudo composer install --prefer-dist --no-devВо время установки Composer попросит заполнить app/config/parameters.yml — укажите параметры подключения к базе и другие значения. Пример интерактивных подсказок:
database_name (oro_crm): orodb
database_user (root): orouser
database_password (null): password
... другие параметры ...Запустите установку приложения в продакшн‑режиме:
sudo php app/console oro:install --env=prodВо время установки вам будет предложено создать администратора (username, email, имя, пароль) и выбрать, загружать ли тестовые данные (sample data).
После успешной установки рекомендуется выполнить прогрев кэша документации API:
sudo php app/console oro:api:doc:cache:clearИ убедиться, что фоновый consumer для очередей сообщений запущен:
# пример (запустить в фоне или как systemd unit):
php app/console oro:message-queue:consumeКонфигурация Nginx для OroCRM
Создайте виртуальный хост:
sudo nano /etc/nginx/sites-available/orocrmДобавьте конфигурацию (замените example.com на ваш домен):
server {
server_name example.com;
root /var/www/html/orocrm/web;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
}
location ~ ^/(app|app_dev|config|install)\.php(/|$) {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
# Enable Gzip compression
gzip on;
gzip_buffers 16 8k;
gzip_comp_level 5;
gzip_disable "msie6";
gzip_min_length 1000;
gzip_http_version 1.0;
gzip_proxied any;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css image/svg+xml;
gzip_vary on;
# Enable browser caching
location ~* \.(?:css|js) {
expires 1w;
access_log off;
add_header Cache-Control public;
}
location ~* \.(?:jpg|jpeg|gif|png|ico|tiff|woff|eot|ttf|svg|svgz|mp4|ogg|ogv|webm|swf|flv)$ {
expires 3w;
access_log off;
add_header Cache-Control public;
}
error_log /var/log/nginx/orocrm_error.log;
access_log /var/log/nginx/orocrm_access.log;
}Сохраните, затем активируйте сайт:
sudo ln -s /etc/nginx/sites-available/orocrm /etc/nginx/sites-enabled/orocrm
sudo nginx -tЕсли тест конфигурации успешен, примените изменения и установите права:
sudo chown -R www-data:www-data /var/www/html/orocrm
sudo chmod -R 777 /var/www/html/orocrm
sudo systemctl restart nginxПримечание: chmod 777 удобно для быстрой установки, но опасно в продакшн. После установки уменьшите права до минимально необходимых (например 750/640) и используйте владельца www-data.
Доступ к веб-интерфейсу
Откройте браузер и перейдите по URL вашего домена, например http://example.com. Вы увидите страницу входа OroCRM.

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

Критерии приёмки
Чтобы считать установку успешной, выполните проверки:
- Страница логина доступна по указанному домену
- Вход под администратором проходит успешно
- База данных содержит таблицы Oro (проверить SHOW TABLES)
- Файлы и логи доступны и имеют корректные права
- Nginx и PHP‑FPM работают без ошибок в логах
- Фоновые задачи (message queue consumer) запущены или настроены как сервис
Чек-лист для ролей
Для системного администратора:
- Проверить обновления ОС и безопасности
- Настроить резервное копирование базы и файлов
- Настроить TLS/HTTPS и HSTS
- Ограничить доступ к административным интерфейсам
Для разработчика:
- Настроить окружение для разработки (app_dev)
- Запустить тесты и миграции
- Проверить интеграции с Magento и внешними сервисами
Для DevOps:
- Настроить процессы очередей и cron
- Создать systemd unit для oro:message-queue:consume
- Настроить мониторинг и алерты
Отладка и типичные ошибки
- “Connection refused” при подключении к MariaDB — проверьте, что служба mysql запущена и в конфиге указана правильная хост‑порта
- Ошибки PHP‑FPM — смотрите /var/log/php7.0-fpm.log
- Nginx возвращает 502 — проверьте путь до сокета fastcgi_pass unix:/run/php/php7.0-fpm.sock;
- Проблемы с правами доступа — временно выставляют chmod 777, но затем корректируют владельца и права
Безопасность и рекомендации
- Обязательно установить HTTPS (Let’s Encrypt или коммерческий сертификат)
- Не используйте chmod 777 на продакшн‑серверах
- Держите пароли и секреты в менеджере секретов
- Отключите root‑доступ по SSH и используйте ключи
- Регулярно обновляйте систему и зависимости
Когда этот подход не подходит
- Если вам нужна самая новая ветка OroCRM, используйте более новую версию PHP и сопутствующие зависимости
- Для высоконагруженных инсталляций потребуется кластеризация БД, балансировщик и оптимизация кеширования
Альтернативы и масштабирование
- Если вы используете Magento, рассмотрите интеграцию OroCRM вместо отдельной CRM
- Для больших инсталляций: выделенный сервер базы данных, Redis/Memcached для кеша, контейнеризация и оркестрация (Docker, Kubernetes)
Мини‑методология внедрения
- Подготовка тестового сервера и воспроизведение окружения продакшн
- Установка и базовая конфигурация (LEMP, DB, PHP)
- Развёртывание OroCRM и базовая проверка функционала
- Настройка резервного копирования и SSL
- Перевод в продакшн и мониторинг
Пример systemd unit для consumer (шаблон)
[Unit]
Description=OroCRM Message Queue Consumer
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/html/orocrm
ExecStart=/usr/bin/php /var/www/html/orocrm/app/console oro:message-queue:consume
Restart=always
[Install]
WantedBy=multi-user.targetКороткие рекомендации по миграции с других окружений
- Экспортируйте базу и проверьте версии SQL-диалекта
- Синхронизируйте версии PHP и установленных расширений
- Проверьте пути к файловой системе (media/assets)
Решение проблем и восстановление
Если приложение недоступно:
- Проверьте логи Nginx и PHP‑FPM
- Убедитесь, что MariaDB доступна и отвечает
- Проверьте, не исчерпана ли дисковая квота
- Восстановите из резервной копии при необходимости
Заключение
В этой инструкции показаны все базовые шаги для развёртывания OroCRM 2.4 на Ubuntu 16.04: установка LEMP, MariaDB, PHP7.0, Node.js, Composer, конфигурация Nginx и базовая безопасность. Для продакшна дополните инструкции настройкой HTTPS, минимизацией прав доступа, мониторингом и автоматизированным запуском фоновых воркеров.
Важно: используйте актуальные версии ОС и компонентов, если разворачиваете новую инсталляцию в 2020+ годах.
Короткая памятка:
- Настройте SSL и безопасные права на файлы
- Автоматизируйте фоновые задачи через systemd
- Храните секреты в менеджере
Похожие материалы
Как печатать PDF и письма в Windows 8
Резиновая анимация: стиль и приёмы
Сделайте старую Wii медиаплеером — WiiMC
Клавиатура и мышь на PS5: подключение и совместимость
Как изменить аватар и фото профиля Reddit