WordPress + плагин WooCommerce¶
Предварительные требования и базовые условия¶
-
Операционная система: Linux-дистрибутив на базе Debian.
-
Привилегии: Для установки и конфигурации требуется доступ root.
-
Домен: Поддомен в зоне
hostkey.inнастраивается автоматически. -
Порты:
-
Порт
443(HTTPS) для внешнего веб-трафика. -
Порт
9000(localhost) для внутренней коммуникации PHP-FPM.
-
-
Программное обеспечение: Должны быть установлены и работать Docker Engine и Docker Compose.
FQDN финальной панели¶
Приложение доступно по следующему полному доменному имени (FQDN): wp<Server ID>.hostkey.in:443
Замените <Server ID> на идентификатор сервера, присвоенный конкретному экземпляру.
Структура файлов и каталогов¶
Система организует конфигурацию, данные и код по следующим путям:
-
Данные приложения:
/data/wordpress-
Содержит ядро WordPress и каталог плагинов.
-
Плагины расположены в
/data/wordpress/wp-content/plugins/.
-
-
Конфигурация Docker:
/root/wordpress- Содержит файл
compose.ymlдля оркестрации сервисов.
- Содержит файл
-
Конфигурация Nginx:
/data/nginx-
Пользовательские блоки серверов:
/data/nginx/user_conf.d/. -
Переменные окружения:
/data/nginx/nginx-certbot.env. -
Сертификаты SSL (управляемые Let's Encrypt):
/etc/letsencrypt/.
-
Процесс установки приложения¶
Приложение разворачивается с использованием Docker Compose. Процесс включает следующие версионные компоненты:
-
Плагин WooCommerce: Версия
8.7.0загружается из официального репозитория WordPress, распаковывается и размещается в каталоге плагинов. -
Ядро WordPress: Размещено внутри контейнера
docker.io/wordpress:php8.2-fpm. -
База данных: Размещена внутри контейнера
bitnami/mariadb:latest. -
Обратный прокси: Размещен внутри контейнера
jonasal/nginx-certbot:latest, обеспечивающего завершение SSL-соединений и маршрутизацию.
Процесс развертывания инициализирует структуру каталогов, размещает плагин WooCommerce, генерирует конфигурацию Docker Compose и запускает сервисы.
Контейнеры Docker и их развертывание¶
Окружение использует три основных контейнера, определенных в файле /root/wordpress/compose.yml.
| Имя сервиса | Образ Docker | Назначение |
|---|---|---|
mariadb | bitnami/mariadb:latest | Хостит базу данных приложения. |
wordpress | docker.io/wordpress:php8.2-fpm | Выполняет PHP-логику приложения. |
nginx | jonasal/nginx-certbot:latest | Выступает в роли веб-сервера, обратного прокси и менеджера SSL. |
Контейнер nginx использует параметр network_mode: host для прямого подключения к сетевому стеку хоста. Контейнер wordpress привязывает PHP-FPM к адресу 127.0.0.1:9000 на хосте.
Базы данных¶
База данных — это экземпляр MariaDB, работающий внутри контейнера Docker.
-
Хост подключения:
mariadb(внутреннее имя контейнера). -
Имя базы данных:
wordpress. -
Пользователь базы данных:
wordpress. -
Хранение: Данные сохраняются в именованном томе Docker с меткой
mariadb_data. -
Учетные данные: Пароль root и пароль приложения управляются через переменные окружения в конфигурации Docker Compose.
Серверы прокси¶
Nginx используется как обратный прокси и точка завершения SSL-соединений.
-
Расположение конфигурации:
/data/nginx/user_conf.d/wp<Server ID>.hostkey.in.conf. -
SSL/TLS: Автоматически управляются образом
nginx-certbot.-
Сертификаты хранятся в
/etc/letsencrypt/live/. -
Сервер слушает порт
443с включенным SSL.
-
-
Маршрутизация:
-
Статические файлы и PHP-скрипты обслуживаются из каталога
/var/www/htmlвнутри контейнера (отображается в/data/wordpressна хосте). -
PHP-запросы проксируются на локальную службу PHP-FPM по адресу
localhost:9000.
-
-
Индексный файл:
index.php.
Настройки разрешений¶
Права доступа к файлам и каталогам настраиваются следующим образом в процессе установки:
-
Каталог данных приложения (
/data/wordpress):-
Владелец:
33(www-data). -
Группа:
33(www-data). -
Режим:
0755.
-
-
Каталог конфигурации Docker (
/root/wordpress):-
Владелец:
root. -
Группа:
root. -
Режим:
0640для самого каталога;0644для файлаcompose.yml.
-
-
Файлы конфигурации Nginx:
-
Владелец:
root. -
Группа:
root. -
Режим:
0644.
-
Доступные порты для подключения¶
-
Порт 443: Основная точка входа в приложение через HTTPS.
-
Порт 9000: Только внутренний. Привязывается к
127.0.0.1на хосте и соединяет контейнер Nginx с контейнером WordPress PHP-FPM.
Запуск, остановка и обновление¶
Управление сервисами выполняется с помощью Docker Compose в каталоге конфигурации.
-
Запуск сервисов:
-
Остановка сервисов:
-
Просмотр логов:
-
Обновление конфигурации: Для применения изменений в файлах конфигурации или загрузки новых образов остановите сервисы, при необходимости измените конфигурацию и снова выполните команду запуска.