Как установить OpenCart на CentOS 7: NGINX или Apache, PHP, MariaDB и безопасная начальная настройка

Как установить OpenCart на CentOS 7

OpenCart — популярная платформа для интернет-магазинов, которая позволяет запустить каталог товаров, заказы, модули, платежные интеграции и административную панель без чрезмерно тяжёлого приложения. Установка OpenCart на CentOS 7 подходит тем, кто хочет полный контроль над веб-сервером, PHP, базой данных, файловыми правами и дальнейшим обслуживанием. В отличие от полностью управляемых панелей, такой подход даёт прозрачную среду: вы понимаете, где находятся файлы, как работает база, как настраивается HTTPS и как потом делать резервные копии.

Практически развёртывание OpenCart состоит из трёх основных слоёв: веб-сервер, PHP и база данных. После этого загружаются файлы OpenCart, создаётся база, настраиваются права доступа и завершается установка через браузер. Чаще всего такую среду разворачивают на VPS, потому что VPS даёт полный контроль над PHP, MariaDB и веб-сервером. Если магазин предполагает более высокую нагрузку или большой каталог, логичным выбором может стать выделенный сервер. Поскольку интернет-магазин должен работать по HTTPS, важную роль играют и SSL сертификаты.

Перед началом стоит проверить совместимость выбранной версии OpenCart и PHP на CentOS 7. Это старая операционная система, и некоторые комбинации более новых версий OpenCart и PHP могут требовать повышенного внимания. Если этот шаг пропустить, позже можно столкнуться с ошибками установки, проблемами модулей или некорректной работой админ-панели, хотя корень проблемы будет именно в несовместимости версий.

1) Подготовка системы и базовые пакеты

Начните с обновления CentOS 7 и установки базовых утилит. Это создаёт более чистую стартовую точку и упрощает дальнейшую работу. Кроме самого веб-стека, удобно иметь wget, unzip, curl и текстовый редактор уже на первом этапе.

sudo yum update -y
sudo yum install -y wget curl unzip nano

OpenCart может работать и с Apache, и с NGINX. Оба варианта корректны, но отличаются стилем конфигурации. В учебных примерах часто используют Apache, потому что он хорошо сочетается с .htaccess и привычен многим администраторам. В этом руководстве мы будем использовать Apache, чтобы упростить первую установку и быстрее получить рабочий результат.

2) Установка MariaDB и создание базы

OpenCart хранит товары, клиентов, заказы, настройки и расширения в базе данных, поэтому следующий шаг — установка MariaDB или MySQL. На CentOS 7 MariaDB обычно оказывается самым простым вариантом. После установки запустите сервис, включите его автозапуск и создайте отдельную базу данных и отдельного пользователя специально для OpenCart. Не стоит подключать приложение к базе под root.

sudo yum install -y mariadb-server mariadb
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

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

mysql -u root -p
CREATE DATABASE opencartdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'opencartuser'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON opencartdb.* TO 'opencartuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Эти данные понадобятся позже во время установки через браузер, поэтому имеет смысл сохранить их сразу, а не пытаться вспомнить потом во время настройки.

3) Установка PHP и Apache

Для работы OpenCart нужны PHP и набор расширений. В типовой конфигурации CentOS 7 это php, php-mysqlnd, php-gd, php-mbstring, php-xml, php-cli, php-opcache, php-curl и php-zip. Поскольку в этом примере используется Apache, устанавливаем и httpd, а затем запускаем сервис.

sudo yum install -y httpd php php-mysqlnd php-gd php-mbstring php-xml php-cli php-opcache php-curl php-zip
sudo systemctl enable --now httpd

После установки проверьте версию PHP и статус Apache. Такой простой тест помогает быстро убедиться, что базовый веб-стек уже живой, прежде чем вы начнёте добавлять приложение и искать ошибки на более высоком уровне.

php -v
sudo systemctl status httpd

Если в системе включён SELinux в режиме enforcing, учитывайте, что он может влиять на файловый доступ или подключение к базе. Многие администраторы думают, что “OpenCart сломан”, хотя реальная причина находится в политике доступа. Даже если вы не будете глубоко настраивать SELinux на этом этапе, полезно помнить о нём как о возможном слое диагностики.

4) Загрузка OpenCart и настройка прав

Следующий шаг — скачать OpenCart и разместить его в веб-директории, например /var/www/html/opencart. После распаковки нужно правильно разложить файлы, переименовать шаблонные конфиги и назначить корректные права, чтобы Apache мог читать приложение и записывать туда, где это действительно требуется.

cd /tmp
wget https://github.com/opencart/opencart/releases/download/VERSION/opencart-VERSION.zip
unzip opencart-VERSION.zip
sudo mkdir -p /var/www/html/opencart
sudo cp -r upload/* /var/www/html/opencart/

В OpenCart есть шаблонные файлы config-dist.php, которые нужно переименовать в config.php как в корне, так и в директории admin. Если забыть этот шаг, установщик может не пройти нормально. После этого назначьте владельцем файлов пользователя Apache.

cd /var/www/html/opencart
sudo mv config-dist.php config.php
cd /var/www/html/opencart/admin
sudo mv config-dist.php config.php

sudo chown -R apache:apache /var/www/html/opencart
sudo chmod -R 755 /var/www/html/opencart

Иногда отдельным каталогам, связанным с кэшем или storage, нужны права на запись. Но не стоит решать это слишком грубо, выставляя 777 на всё подряд. Намного безопаснее выдавать права только тем каталогам, которым они действительно нужны.

5) VirtualHost Apache и запуск установки

Если у вас есть отдельный домен или поддомен, создайте Apache VirtualHost. Это поможет отделить магазин от других сайтов и упростит подключение HTTPS позже. В конфигурации укажите DocumentRoot на /var/www/html/opencart и включите AllowOverride, чтобы rewrite-правила работали корректно.

sudo nano /etc/httpd/conf.d/opencart.conf

    ServerName shop.example.com
    DocumentRoot /var/www/html/opencart

    
        AllowOverride All
        Require all granted
    

    ErrorLog /var/log/httpd/opencart_error.log
    CustomLog /var/log/httpd/opencart_access.log combined

После сохранения конфигурации перезапустите Apache. Если включён firewall, разрешите HTTP и HTTPS. Затем откройте домен или IP-адрес в браузере и пройдите установщик OpenCart, указав базу данных, пользователя, пароль и параметры административной учётной записи.

sudo systemctl restart httpd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

После завершения установки OpenCart требует удалить каталог install. Это обязательный шаг с точки зрения безопасности. Если оставить его на месте, в системе останется ненужный риск и предупреждение в панели.

sudo rm -rf /var/www/html/opencart/install

HTTPS, безопасность и дальнейшее обслуживание

После того как OpenCart открылся, не стоит останавливаться на уровне “сайт работает”. Полноценный интернет-магазин должен использовать HTTPS, сильные пароли администратора и понятный процесс обновлений. SSL — это не просто формальность, а базовый уровень доверия и защиты для клиентов, сессий и заказов.

Производительность магазина зависит не только от PHP. Важны также база данных, кэш, изображения и качество установленных модулей. Многие магазины на OpenCart начинают тормозить не из-за самой платформы, а из-за большого количества некачественных расширений или тяжёлых изображений без оптимизации. Поэтому правильная установка — это ещё и основа для аккуратной дальнейшей поддержки.

Резервные копии обязательны. Интернет-магазин содержит не только каталог товаров, но и клиентов, историю заказов, настройки и медиафайлы. Для полноценного восстановления нужно сохранять и файлы, и базу данных. Только один из этих элементов сам по себе не даст полного возврата магазина в рабочее состояние.

mysqldump -u opencartuser -p opencartdb > /tmp/opencartdb.sql
tar -czf /tmp/opencart-files.tar.gz /var/www/html/opencart

Если магазин будет использоваться долго, зафиксируйте версию OpenCart, PHP, настройки базы, домен и процедуру резервного копирования. Такая документация значительно упрощает обновления, миграции и диагностику. Хорошая среда OpenCart — это не только та, которая успешно установилась один раз, но и та, которую можно безопасно сопровождать, восстанавливать и развивать в дальнейшем.