Обзор развертывания WordPress на сервере¶
Предварительные требования¶
Для успешного развертывания приложения требуются следующие параметры и компоненты:
-
Операционная система: Debian (или дистрибутивы на базе APT).
-
Права доступа: Права суперпользователя (
root) для установки системных пакетов и управления Docker. -
Доменное имя: Настроенный DNS для работы через SSL.
-
Порты:
-
80(внутренний) — для HTTP/Certbot. -
443(внешний) — для защищенного HTTPS соединения. -
9000(локальный) — для взаимодействия PHP-FPM и Nginx.
FQDN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | wp |
| Домен | hostkey.in |
| Полный шаблон | wp{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
В процессе установки создаются следующие директории:
-
/data/wordpress— основное хранилище файлов сайта (контент WordPress). -
/root/wordpress— рабочая директория с конфигурацией Docker Compose. -
/data/nginx/user_conf.d— место хранения конфигурационных файлов Nginx для домена. -
/data/nginx/nginx-certbot.env— файл переменных окружения для работы SSL.
Процесс установки приложения¶
Развертывание выполняется в несколько этапов:
-
Подготовка системы: Обновление списков пакетов
APTи установка системных утилит (lsb-release,apt-transport-https,vim,htop,zip). -
Подготовка контента:
-
Создается директория
/data/wordpressс правами пользователяwww-data(UID 33). -
Загружается плагин WooCommerce версии
8.7.0. -
Плагин распаковывается и перемещается в папку расширений:
/data/wordpress/wp-content/plugins/. -
Настройка веб-сервера: Генерация конфигурационного файла Nginx для обеспечения работы по протоколу HTTPS.
-
Запуск контейнеров: Развертывание инфраструктуры через
docker composeв директории/root/wordpress.
Права доступа и безопасность¶
-
Для файлов сайта используется пользователь с UID
33. -
Конфигурационные файлы Nginx имеют права
0644, принадлежащие пользователюroot. -
Директория с Docker Compose защищена правами
0755или0760. -
Доступ к портам ограничен: PHP-FPM прослушивает порт
9000только на локальном интерфейсе127.0.0.1.
Базы данных¶
Для работы WordPress используется контейнер MariaDB.
-
Имя базы данных:
wordpress -
Пользователь:
wordpress -
Место хранения данных: Docker Volume
mariadb_data(путь внутри контейнера/bitnami/mariadb).
Контейнеры Docker и их запуск¶
Приложение работает в составе группы контейнеров, управляемых через docker compose.
| Имя образа | Порты | Тома (Volumes) | Переменные окружения | Политика перезапуска |
|---|---|---|---|---|
bitnami/mariadb:latest | Нет | mariadb_data:/bitnami/mariadb | Настройки БД, пароли root и пользователя | unless-stopped |
docker.io/wordpress:php8.3-fpm | 127.0.0.1:9000:9000 | /data/wordpress:/var/www/html | Параметры подключения к MySQL | unless-stopped |
jonasal/nginx-certbot:latest | Использует host сеть | nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d, /data/wordpress:/var/www/html | Email для Certbot, файл окружения | unless-stopped |
Инструкция по обновлению приложения¶
Для обновления основного приложения (WordPress) необходимо выполнить следующие действия:
-
Перейти в директорию с конфигурацией:
-
Выполнить обновление образов и перезапуск контейнеров: