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

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

5 min read eCommerce Обновлено 22 Nov 2025
Установка OpenCart на Ubuntu с Nginx, PHP-FPM и MariaDB
Установка OpenCart на Ubuntu с Nginx, PHP-FPM и MariaDB

Важно: исходный туториал использует Ubuntu 15.10. Для продакшен-серверов рекомендуется применять поддерживаемую LTS‑версию Ubuntu (например, 20.04 или 22.04) и соответствующие пакеты PHP/MariaDB.

Требования

  • Ubuntu 15.10 — 64 бит (в исходном материале). Рекомендуется поддерживаемая LTS-версия.
  • Права root или пользователь с sudo.

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

Мы используем Nginx как лёгкий и быстрый веб-сервер с низким потреблением памяти. Установите Nginx из репозиториев Ubuntu:

sudo apt-get install nginx

Проверьте Nginx с помощью curl или, открыв IP сервера в браузере (например, Firefox):

curl -I 192.168.1.101

Вы должны увидеть стандартную страницу Ubuntu.

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

PHP-FPM (FastCGI Process Manager) — современный способ запуска PHP с Nginx. В исходном руководстве устанавливается PHP5 и модули, необходимые для OpenCart:

  • php-mysql
  • php-gd
  • php-curl
  • php-mcrypt

Установите PHP-FPM и расширения одной командой:

sudo apt-get install php5 php5-fpm php5-mysql php5-curl php5-gd php5-mcrypt

Затем отредактируйте php.ini для php-fpm:

cd /etc/php5/fpm
vim php.ini

Найдите и раскомментируйте (или установите) параметр:

cgi.fix_pathinfo=0

Включите модуль mcrypt, если он доступен:

cd /etc/php5/fpm/conf.d/
ln -s ../../mods-available/mcrypt.ini mcrypt.ini

Перезапустите службы, чтобы применить изменения:

systemctl restart nginx
systemctl restart php5-fpm

Проверьте интеграцию Nginx + PHP-FPM. В конфигурации сайта (default) включите обработку PHP и создайте phpinfo-файл:

cd /etc/nginx/sites-available/
vim default

Найдите и раскомментируйте блок для PHP-FPM, например:

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
        }

Сохраните и закройте. Затем создайте файл info.php в веб‑корне:

cd /var/www/html/
echo "" > info.php

Откройте в браузере http://192.168.1.103/info.php чтобы проверить вывод PHP.

phpinfo: вывод конфигурации PHP на сервере

Nginx и PHP-FPM настроены корректно.

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

MariaDB — форк MySQL. В примере используется MariaDB, но вы можете оставить MySQL при желании.

sudo apt-get install mariadb-server mariadb-client

Настройте безопасность и пароль root с помощью скрипта:

mysql_secure_installation

Выполните ответы по подсказкам (в примере все варианты — Y).

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

mysql -u root -p
TYPE YOUR PASSWORD

create database opencartdb;
create user opencartuser@localhost identified by 'opencartuser@';
grant all privileges on opencartdb.* to opencartuser@localhost identified by 'opencartuser@';
flush privileges;

Создание базы данных для OpenCart в MariaDB

Важно: используйте надёжный пароль вместо примера ‘opencartuser@’.

Шаг 4 — Установка SSL

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

sudo apt-get install openssl

Создайте каталог для сертификатов и сгенерируйте самоподписанный сертификат (для тестовой среды):

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/opencart.key -out /etc/nginx/ssl/opencart.crt
chmod 600 opencart.key

SSL-сертификат готов. Для продакшена используйте сертификат от CA (например, Let’s Encrypt).

Шаг 5 — Конфигурация виртуального хоста для OpenCart

Создайте новый виртуальный хост в /etc/nginx/sites-available/opencart:

cd /etc/nginx/sites-available/
vim opencart

Вставьте следующую конфигурацию (замените server_name на ваш домен):

server {
    server_name www.myopencart.co; ## Your Domain
    root /var/www/opencart/upload; ## Web Root Directory
    index index.php index.html;

    listen 80;
    listen [::]:80;
    listen 443 default ssl;

    ssl_certificate      /etc/nginx/ssl/opencart.crt;
    ssl_certificate_key  /etc/nginx/ssl/opencart.key;

    # Redirect HTTP to HTTPS
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }

    access_log /var/log/nginx/myopencart_access.log;

    location /image/data {
        autoindex on;
    }
    location /admin {
        index index.php;
    }
    location / {
        try_files $uri @opencart;
    }
    location @opencart {
        rewrite ^/(.+)$ /index.php?_route_=$1 last;
    }

    # Make sure files with the following extensions do not get loaded by nginx because nginx would display the source code, and these files can contain PASSWORDS!
    location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_ {
        deny all;
    }
    # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
    location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
        expires max;
        log_not_found off;
    }
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

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

ln -s /etc/nginx/sites-available/opencart /etc/nginx/sites-enabled/
nginx -t

Перезапустите Nginx, если проверка прошла успешно.

Шаг 6 — Установка и настройка OpenCart

Используем каталог /var/www/ для установки OpenCart. Скачайте архив OpenCart (в примере используется opencart-2.1.0.1.zip):

Вы можете скачать OpenCart с официального сайта: http://www.opencart.com/?route=download/download.

cd /var/www/
unzip opencart-2.1.0.1.zip

Переименуйте папку и перейдите в upload:

mv opencart-opencart-2.1.0.1/ opencart/
cd opencart/upload/

Скопируйте файлы конфигурации шаблонов:

cp config-dist.php config.php
cp admin/config-dist.php admin/config.php

Назначьте владельца файлов веб‑сервера (в примере — www-data):

cd /var/www/
chown -R www-data:www-data opencart/

Примечание: если Nginx работает под другим пользователем, используйте соответствующего владельца.

Перезапустите сервисы:

systemctl restart nginx
systemctl restart php5-fpm

Откройте в браузере домен сайта (в примере www.myopencart.co). Установщик выдаст лицензионное соглашение — примите его и продолжите.

Принятие лицензионного соглашения OpenCart в веб-установщике

Проверьте статус предварительной проверки — все поля должны быть зелёными, затем нажмите Продолжить.

Проверка системы перед установкой OpenCart — все статусы должны быть зелёными

Вбейте данные базы данных и учётную запись администратора в форму установщика, затем продолжите.

Ввод данных базы данных и учётной записи администратора в установщике OpenCart

После завершения установки вы увидите страницу успешной установки. Не забудьте удалить каталог install.

Установка OpenCart завершена — сайт и панель администратора доступны

cd /var/www/opencart/upload/
rm -rf install/

OpenCart с Nginx и PHP-FPM установлен и работает.

Когда этот подход не подойдёт

  • На очень старом оборудовании, где важна максимальная совместимость со старыми модулями Apache, проще использовать Apache.
  • Если у вас специфические модули PHP, отсутствующие в репозитории, потребуется собрать/установить их отдельно.
  • Для высоконагруженного магазина требуется дополнительная архитектура: балансировщик, кэш, репликация БД.

Альтернативные подходы

  • Установка с Apache + mod_php. Проще для начинающих, но менее эффективна по памяти.
  • Контейнеризация (Docker): упрощает переносимость и CI/CD.
  • Использование управляемого хостинга/Marketplace (PaaS) с готовыми образами OpenCart.

Безопасность и жёсткая настройка (рекомендации)

  • Удалите папку install сразу после установки.
  • Откройте файл config.php и admin/config.php, проверьте права файлов.
  • Ограничьте доступ к административной части по IP (если возможно).
  • Используйте TLS от доверенного CA (Let’s Encrypt) вместо самоподписанного сертификата.
  • Отключите показы ошибок PHP на продакшене (display_errors = Off).
  • Регулярно обновляйте систему, PHP и OpenCart, а также расширения.

Контрольный список ролей

  • Системный администратор:
    • Установить Nginx, PHP-FPM, MariaDB.
    • Настроить SSL и права на файлы.
    • Настроить автоматическое резервное копирование БД и файлов.
  • Разработчик/интегратор:
    • Проверить совместимость модулей и шаблонов.
    • Настроить окружение разработки и CI.
  • Владелец магазина:
    • Подготовить домен и данные для SSL.
    • Создать администраторскую учётную запись и настроить базовые параметры магазина.

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

  • Сайт отвечает по HTTPS без ошибок сертификата (для продакшена — действительный CA).
  • Страница фронтенда и бэкенда загружаются, вход в админ-панель успешен.
  • PHP-FPM обслуживает .php страницы (файл info.php даёт корректный вывод).
  • База данных создана, пользователь имеет права на базу opencartdb.
  • Удалён install/ и установлены корректные права на файлы.

Набор тестов и приёмка

  • Откройте http:///info.php и убедитесь, что PHP-информация отображается.
  • Перейдите на главную страницу магазина, выполните поиск товара, добавьте товар в корзину.
  • Войдите в админ-панель и создайте категорию/товар.
  • Проверьте лог ошибок Nginx на наличие предупреждений.

Советы по миграции и совместимости

  • На современных системах пакеты называются php7.4/php8.0 и соответствующие модули. При переходе на LTS‑Ubuntu замените названия пакетов (php5 → php7.4).
  • Убедитесь, что используемые модули (mcrypt) поддерживаются в выбранной версии PHP; некоторые модули могут требовать замены на современные эквиваленты.

Краткая методология установки (cheat sheet)

  • Установить Nginx → Установить PHP-FPM + модули → Настроить php.ini (cgi.fix_pathinfo=0) → Включить mcrypt (если требуется) → Установить MariaDB → Создать БД и пользователя → Настроить SSL → Создать виртуальный хост → Развернуть файлы OpenCart → Установить права → Удалить install/ → Проверить работоспособность.

Сводка

  • OpenCart — лёгкая платформа для небольших и средних интернет-магазинов.
  • Вариант с Nginx + PHP-FPM хорошо подходит по производительности.
  • Для продакшена важно использовать современную версию ОС и PHP, надёжный TLS-сертификат и регулярные обновления.

Дополнительные заметки:

  • Примечание: если вы используете более новую версию PHP, замените пути к сокетам и имена пакетов в конфигурации соответствующим образом.
  • Важно: не храните пароли в публичных конфигурационных файлах и не используйте очевидные пароли в продакшене.
Поделиться: 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 — руководство