Обзор развертывания OpenCart на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры конфигурации:
-
Операционная система: Debian, Ubuntu или семейства RedHat (CentOS, Rocky Linux, AlmaLinux).
-
Доступ: Права суперпользователя (root) для установки пакетов и настройки системных служб.
-
Порты:
-
Внешний порт HTTPS:
443 -
Внешний порт HTTP:
80 -
Внутренний порт веб-сервера:
8080(используется для взаимодействия с прокси).
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | opencart |
| Домен | hostkey.in |
| Полный шаблон | opencart{Server_ID}.hostkey.in/opencart |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/var/www/html/opencart— корневая директория приложения OpenCart. -
/root/opencart— временная директория с исходным кодом из репозитория. -
/root/nginx— конфигурационные файлы Docker Compose для прокси-сервера. -
/data/nginx/user_conf.d— пользовательские конфигурации Nginx. -
/etc/apache2или/etc/httpd— системные конфигурации веб-сервера Apache.
Процесс установки приложения¶
Процесс развертывания включает несколько этапов: подготовка системы, установка зависимостей, настройка базы данных и настройка проксирования.
1. Подготовка операционной системы¶
-
Отключается поддержка IPv6 в системных параметрах (
sysctl). -
Удаляются конфликтующие репозитории Docker для предотвращения ошибок при обновлении пакетов.
-
Устанавливаются необходимые системные утилиты (curl, git, wget, vim, htop и др.).
2. Установка веб-сервера и PHP¶
-
Для Debian/Ubuntu: Подключается репозиторий
ppa:ondrej/phpдля установки актуальной версии PHP. Устанавливается пакет Apache2. -
Для RedHat: Настраивается модуль
remi-8.0для обеспечения работы с PHP 8.0. Устанавливается пакет httpd.
3. Развертывание OpenCart¶
-
Исходный код загружается из репозитория GitHub (ветка
3.0.x.x). -
Файлы приложения копируются в
/var/www/html/opencart. -
Выполняется переименование конфигурационных файлов:
-
config-dist.php\(\rightarrow\)config.php -
admin/config-dist.php\(\rightarrow\)admin/config.php
4. Настройка базы данных¶
-
Создается база данных с именем
opencart. -
Создается пользователь
opencartс полными правами доступа к этой базе.
5. Настройка проксирования и SSL¶
-
Веб-сервер (Apache/httpd) перенастраивается на работу на внутреннем порту
8080. -
Для корректной работы OpenCart через HTTPS настраивается передача заголовков
X-Forwarded-ProtoиHost.
Права доступа и безопасность¶
-
Владелец файлов: Все файлы в
/var/www/html/opencartпринадлежат пользователюwww-data(в Debian/Ubuntu) илиapache(в RedHat). -
Брандмауэр:
-
В системах на базе RedHat автоматически открываются порты
80/tcpи443/tcp. -
Безопасность PHP: Настройка заголовков позволяет приложению корректно определять протокол HTTPS, работая за прокси-сервером.
Базы данных¶
Данные приложения хранятся в локальной базе данных MySQL/MariaDB.
| Параметр | Значение |
|---|---|
| Имя базы данных | opencart |
| Пользователь | opencart |
Контейнеры Docker и их запуск¶
Для обеспечения работы SSL-сертификатов используется контейнерный прокси-сервер.
Nginx Certbot¶
Контейнер отвечает за автоматическое получение и обновление SSL-сертификатов через Let's Encrypt.
-
Образ:
jonasal/nginx-certbot:latest -
Режим сети:
host -
Перезапуск:
unless-stopped -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt— хранение сертификатов. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— пользовательские конфигурации проксирования. -
Переменные окружения:
-
CERTBOT_EMAIL: адрес электронной почты для уведомлений Let's Encrypt.
Инструкция по обновлению приложения¶
Для обновления основного приложения OpenCart необходимо выполнить следующие действия:
-
Обновить исходный код из репозитория GitHub в директории
/root/opencart. -
Синхронизировать файлы в рабочую директорию
/var/www/html/opencart. -
Перезапустить веб-сервер (Apache или httpd).