Обзор развертывания WordPress на сервере¶
Предварительные требования¶
Для успешного развертывания приложения необходимы следующие условия:
-
Установленный Docker и Docker Compose.
-
Доступ к терминалу с правами суперпользователя (
root). -
Настроенный домен для работы через SSL (Certbot).
-
Открытые порты:
80(HTTP) и443(HTTPS).
FQDN итоговой панели на домене hostkey.in¶
| Параметр | Значение | | Префикс | wp | | Домен | hostkey.in | | Полный шаблон | wp{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
В системе используются следующие директории для хранения данных и конфигураций:
-
/root/wordpress— рабочая директория приложения, содержащая файлcompose.yml. -
/data/nginx/user_conf.d/— директория с конфигурационными файлами веб-сервера Nginx. -
/data/nginx/nginx-certbot.env— файл переменных окружения для работы SSL. -
/data/wordpress— хранилище файлов сайта (контент WordPress). -
/var/lib/docker/volumes/mariadb_data— место хранения данных базы данных MariaDB.
Процесс установки приложения¶
Развертывание выполняется путем автоматической подготовки окружения и запуска контейнеров через Docker Compose:
-
Создаются необходимые директории в системе (
/data,/root/wordpressи др.). -
Подготавливается конфигурационный файл Nginx для обеспечения работы по протоколу HTTPS.
-
Генерируется файл
compose.ymlв директории/root/wordpress. -
Запускается процесс развертывания контейнеров командой
docker compose up -dиз директории/root/wordpress.
Права доступа и безопасность¶
-
Все системные директории (
/data,/data/nginx) создаются с правами владельцаrootи группойroot. -
Конфигурационные файлы имеют режим доступа
0644. -
Директории для хранения данных имеют режим доступа
0755.
Базы данных¶
Для работы WordPress используется контейнер MariaDB.
-
Имя базы данных:
wordpress -
Пользователь:
wordpress -
Место хранения: Данные сохраняются в именованном томе
mariadb_data.
Контейнеры Docker и их запуск¶
Приложение состоит из трех основных контейнеров:
| Имя образа | Назначение | Порты | Тома (Volumes) | Переменные окружения | Политика перезапуска |
|---|---|---|---|---|---|
bitnami/mariadb:latest | База данных | Нет | mariadb_data:/bitnami/mariadb | MARIADB_USER, MARIADB_DATABASE, MARIADB_PASSWORD, MARIADB_ROOT_PASSWORD | unless-stopped |
wordpress:php8.3-fpm | Приложение WordPress | 127.0.0.1:9000:9000 | /data/wordpress:/var/www/html | MYSQL_ROOT_PASSWORD, WORDPRESS_DB_PASSWORD, WORDPRESS_DB_HOST, WORDPRESS_DB_USER, WORDPRESS_DB_NAME | unless-stopped |
jonasal/nginx-certbot:latest | Веб-сервер и SSL | Использует сеть host | nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d, /data/wordpress:/var/www/html | CERTBOT_EMAIL (из файла .env) | unless-stopped |
Инструкция по обновлению приложения¶
Для обновления версии WordPress и связанных с ним компонентов необходимо выполнить следующие действия:
-
Перейти в рабочую директорию:
-
Подтянуть актуальные образы:
-
Перезапустить контейнеры с новыми версиями:
Расположение конфигурационных файлов и данных¶
-
Конфигурация Nginx:
/data/nginx/user_conf.d/wp{Server_ID_from_Invapi}.hostkey.in.conf -
Файлы сайта:
/data/wordpress -
Данные БД: внутри тома
mariadb_data
Доступные порты для подключения¶
-
80— HTTP (для перенаправления на HTTPS и проверки Certbot). -
443— HTTPS (основной порт для доступа к сайту). -
9000— PHP-FPM (доступен только локально внутри сервера).
Запуск, остановка приложения¶
Управление приложением осуществляется через Docker Compose в директории /root/wordpress:
-
Запуск:
docker compose up -d -
Остановка:
docker compose down -
Просмотр статуса:
docker compose ps