Установка 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.

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;
Важно: используйте надёжный пароль вместо примера ‘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.keySSL-сертификат готов. Для продакшена используйте сертификат от 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). Установщик выдаст лицензионное соглашение — примите его и продолжите.

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

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

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

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, замените пути к сокетам и имена пакетов в конфигурации соответствующим образом.
- Важно: не храните пароли в публичных конфигурационных файлах и не используйте очевидные пароли в продакшене.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone