Обзор развертывания OpenCart на сервере¶
Предварительные требования и базовые условия¶
Приложение OpenCart предназначено для работы на следующих операционных системах:
-
CentOS
-
Rocky Linux
-
AlmaLinux
-
Ubuntu
-
Debian
Для выполнения установки на сервере должны быть права root. Для развертывания требуется открыть следующие сетевые порты для входящего трафика:
-
Порт 80 (HTTP)
-
Порт 443 (HTTPS)
Процесс установки приложения¶
Версия OpenCart 3.0.x.x развертывается путем клонирования исходного кода из официального репозитория GitHub и копирования его в директорию веб-сервера. Процесс установки включает следующие шаги:
-
Исходный код клонируется в директорию
/root/opencart/. -
Файлы приложения копируются из
/root/opencart/upload/в корневую папку веб-сервера. -
Файлы конфигурации по умолчанию переименовываются для удаления суффикса
-dist. -
Создается база данных MySQL/MariaDB с именем
opencart. -
Создается пользователь базы данных с именем
opencart, обладающий полными правами на базу данныхopencart.
Структура файлов и директорий¶
Файлы приложения организованы следующим образом:
-
Директория исходного кода:
/root/opencart/(Содержит отклонированный репозиторий) -
Корневая папка веб-сервера:
/var/www/html/opencart/(Файлы, доступные в публичной сети) -
Файлы конфигурации:
-
/var/www/html/opencart/config.php(Конфигурация магазина) -
/var/www/html/opencart/admin/config.php(Конфигурация административной панели)
-
Базы данных¶
Слой базы данных использует MySQL или MariaDB, которые установлены и настроены локально на сервере.
-
Имя базы данных:
opencart -
Пользователь базы данных:
opencart -
Пароль: Устанавливается в соответствии с паролем SSH, определенным в окружении.
-
Расположение сокетов:
-
На системах Debian/Ubuntu:
/run/mysqld/mysqld.sock -
На системах RedHat/CentOS/AlmaLinux:
/var/lib/mysql/mysql.sock
-
Прокси-серверы и конфигурация веб-сервера¶
Развертывание использует стандартные веб-серверы в зависимости от семейства операционной системы:
-
Apache2: Используется на системах Ubuntu и Debian.
-
HTTPD: Используется на системах CentOS, Rocky и AlmaLinux.
Сервис веб-сервера настроен на автоматический запуск при загрузке системы и перезапускается сразу после развертывания. В это развертывание не включены обратные прокси или пользовательская конфигурация SSL (например, Nginx или Certbot); стандартные порты 80 и 443 настроены для доступа.
Настройки прав доступа¶
Права доступа к файлам и директориям устанавливаются таким образом, чтобы веб-сервер мог безопасно выполнять приложение:
-
Директория:
/var/www/html/opencart-
Владелец/Группа:
www-data(Debian/Ubuntu) илиapache(семейство RedHat) -
Режим:
0755
-
-
Директория:
/var/www-
Владелец/Группа: Рекурсивно устанавливается в
www-dataилиapacheв зависимости от ОС. -
Все поддиректории и файлы внутри корневой папки веб-сервера наследуют эти настройки владения.
-
Права доступа и безопасность¶
Настройки безопасности корректируются в зависимости от операционной системы:
-
IPv6: На системах Debian и Ubuntu IPv6 отключается на уровне системы путем изменения файла
/etc/sysctl.confс добавлением следующих записей:-
net.ipv6.conf.all.disable_ipv6 = 1 -
net.ipv6.conf.default.disable_ipv6 = 1 -
net.ipv6.conf.lo.disable_ipv6 = 1
-
-
Межсетевой экран: На системах на базе RedHat (CentOS, Rocky, AlmaLinux) сервис
firewalldконфигурируется для разрешения трафика на портах 80/tcp и 443/tcp в зонеpublicпостоянно.
Запуск, остановка и обновление¶
Управление сервисами осуществляется через менеджер сервисов systemd.
-
Для проверки статуса сервиса:
-
Debian/Ubuntu:
systemctl status apache2 -
RedHat/CentOS/AlmaLinux:
systemctl status httpd
-
-
Для перезапуска сервиса:
-
Debian/Ubuntu:
systemctl restart apache2 -
RedHat/CentOS/AlmaLinux:
systemctl restart httpd
-
-
Для остановки сервиса:
-
Debian/Ubuntu:
systemctl stop apache2 -
RedHat/CentOS/AlmaLinux:
systemctl stop httpd
-
-
Для запуска сервиса:
-
Debian/Ubuntu:
systemctl start apache2 -
RedHat/CentOS/AlmaLinux:
systemctl start httpd
-
Расположение файлов конфигурации и данных¶
| Компонент | Путь | Описание |
|---|---|---|
| Основная конфигурация | /var/www/html/opencart/config.php | Конфигурация фронтенда магазина |
| Конфигурация админки | /var/www/html/opencart/admin/config.php | Конфигурация административной панели |
| Сокет базы данных (Debian/Ubuntu) | /run/mysqld/mysqld.sock | Точка подключения MySQL |
| Сокет базы данных (RedHat) | /var/lib/mysql/mysql.sock | Точка подключения MySQL |
| Системная сетевая конфигурация | /etc/sysctl.conf | Настройки отключения IPv6 |