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

Обзор развертывания OpenCart на сервере

Предварительные требования

Для корректной работы приложения требуются следующие параметры системы и сетевые настройки:

  • Операционная система: Debian, Ubuntu, CentOS, Rocky Linux или AlmaLinux.

  • Права доступа: Полный доступ root для выполнения установки.

  • Порты:

  • 80/tcp — HTTP (используется для проверки сертификатов).

  • 443/tcp — HTTPS (основной трафик).

  • 8080 — Внутренний порт веб-сервера Apache.

FDQN итоговой панели на домене hostkey.in

Для доступа к приложению используется динамический шаблон поддомена:

Параметр Значение
Префикс opencart
Домен hostkey.in
Полный шаблон opencart{Server_ID_from_Invapi}.hostkey.in/opencart

Структура файлов и каталогов

Основные пути к файлам и директориям в системе:

  • /var/www/html/opencart — корневая директория приложения OpenCart.

  • /root/opencart — временная директория с исходным кодом из репозитория.

  • /root/nginx — конфигурационные файлы Docker Compose для Nginx.

  • /data/nginx/user_conf.d — пользовательские конфигурации Nginx (включая проксирование).

  • /data/nginx/nginx-certbot.env — файл переменных окружения для контейнера Nginx.

Процесс установки приложения

Развертывание выполняется путем клонирования репозитория OpenCart (ветка 3.0.x.x) и настройки веб-сервера.

Основные этапы:

  1. Установка системных зависимостей (PHP, MySQL, Apache/httpd, Git).

  2. Клонирование исходного кода из GitHub в /root/opencart.

  3. Копирование файлов приложения в /var/www/html/opencart.

  4. Переименование конфигурационных файлов из config-dist.php в config.php (включая директорию admin).

  5. Настройка веб-сервера Apache на работу на внутреннем порту 8080.

Права доступа и безопасность

Безопасность обеспечивается следующими механизмами:

  • Брандмауэр: Открыты только необходимые порты 80 и 443. В системах семейства RedHat используется firewalld.

  • Владелец файлов:

  • Для Debian/Ubuntu: пользователь www-data.

  • Для RHEL/CentOS/AlmaLinux: пользователь apache.

  • Права на директории: Установлен режим 0755 для каталогов приложения.

Базы данных

Для работы OpenCart создается база данных и пользователь с ограниченными правами:

Параметр Значение
Имя базы данных opencart
Имя пользователя opencart
Права доступа Все привилегии (ALL) на базу opencart.*

Контейнеры Docker и их запуск

Для управления SSL-сертификатами используется контейнер Nginx с модулем Certbot.

Контейнер: nginx

  • Образ: jonasal/nginx-certbot:latest

  • Режим сети: host

  • Порты: Использует порты хоста (80, 443).

  • Тома (volumes):

  • nginx_secrets:/etc/letsencrypt — хранение сертификатов.

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d — конфигурации проксирования.

  • Переменные окружения:

  • CERTBOT_EMAIL: email для регистрации в Let's Encrypt.

  • Политика перезапуска: unless-stopped.

Инструкция по обновлению приложения

Обновление выполняется через обновление конфигурации и перезапуск контейнеров: docker compose pull && docker compose up -d (в директории /root/nginx).

Настройки прав

Права на файлы устанавливаются следующим образом:

  • Владельцем каталогов /var/www/html/opencart и /var/www является системный пользователь веб-сервера (www-data или apache).

  • Рекурсивно применяется право собственности для обеспечения доступа веб-сервера к файлам приложения.

Расположение конфигурационных файлов и данных

Конфигурация OpenCart включает:

  • Основной файл: /var/www/html/opencart/config.php.

  • Файл администратора: /var/www/html/opencart/admin/config.php.

Доступные порты для подключения

Порт Протокол Назначение
80 TCP HTTP (для проверки сертификатов)
443 TCP HTTPS (основной доступ к сайту)
8080 TCP Внутренний порт Apache (локально)

Запуск, остановка приложения

Управление контейнером Nginx-Certbot:

  • Запуск: docker compose up -d (из /root/nginx).

  • Перезагрузка конфигурации Nginx: docker compose exec -T nginx nginx -s reload.

  • Остановка: docker compose down.

Прокси серверы

В качестве обратного прокси используется контейнер nginx-certbot.

Настройки проксирования:

  • Передается заголовок Host для корректной работы редиректов OpenCart.

  • Передается заголовок X-Forwarded-Proto со значением $scheme, чтобы PHP понимал, что запрос пришел по HTTPS.

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