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

Установка OroCRM на Ubuntu 16.04

6 min read CRM Обновлено 26 Nov 2025
Установка OroCRM на Ubuntu 16.04
Установка 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.

Страница входа OroCRM

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

Панель управления 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)

Мини‑методология внедрения

  1. Подготовка тестового сервера и воспроизведение окружения продакшн
  2. Установка и базовая конфигурация (LEMP, DB, PHP)
  3. Развёртывание OroCRM и базовая проверка функционала
  4. Настройка резервного копирования и SSL
  5. Перевод в продакшн и мониторинг

Пример 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)

Решение проблем и восстановление

Если приложение недоступно:

  1. Проверьте логи Nginx и PHP‑FPM
  2. Убедитесь, что MariaDB доступна и отвечает
  3. Проверьте, не исчерпана ли дисковая квота
  4. Восстановите из резервной копии при необходимости

Заключение

В этой инструкции показаны все базовые шаги для развёртывания OroCRM 2.4 на Ubuntu 16.04: установка LEMP, MariaDB, PHP7.0, Node.js, Composer, конфигурация Nginx и базовая безопасность. Для продакшна дополните инструкции настройкой HTTPS, минимизацией прав доступа, мониторингом и автоматизированным запуском фоновых воркеров.

Важно: используйте актуальные версии ОС и компонентов, если разворачиваете новую инсталляцию в 2020+ годах.

Короткая памятка:

  • Настройте SSL и безопасные права на файлы
  • Автоматизируйте фоновые задачи через systemd
  • Храните секреты в менеджере
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Как печатать PDF и письма в Windows 8
Windows

Как печатать PDF и письма в Windows 8

Резиновая анимация: стиль и приёмы
Анимация

Резиновая анимация: стиль и приёмы

Сделайте старую Wii медиаплеером — WiiMC
Гайды

Сделайте старую Wii медиаплеером — WiiMC

Клавиатура и мышь на PS5: подключение и совместимость
Гайды

Клавиатура и мышь на PS5: подключение и совместимость

Как изменить аватар и фото профиля Reddit
Социальные сети

Как изменить аватар и фото профиля Reddit

Как вести живой видеоподкаст каждую неделю
Подкастинг

Как вести живой видеоподкаст каждую неделю