Перейти к содержанию

Обзор развертывания 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 необходимо выполнить следующие действия:

  1. Обновить исходный код из репозитория GitHub в директории /root/opencart.

  2. Синхронизировать файлы в рабочую директорию /var/www/html/opencart.

  3. Перезапустить веб-сервер (Apache или httpd).

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×