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

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

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

Для успешного развертывания приложения на сервере необходимо наличие следующих условий: - Операционная система на базе Debian или Ubuntu. - Права доступа пользователя root или учетная запись с правами sudo. - Установленный и настроенный пакетный менеджер apt. - Доступ к интернету для загрузки образов Docker и плагинов. - Свободные порты: 443 для HTTPS-трафика и 9000 для внутреннего соединения с PHP-FPM. - Доменное имя, настроенное на IP-адрес сервера.

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

Приложение и его компоненты размещаются в следующих директориях: - /data/wordpress — основная директория для файлов WordPress, включая плагин WooCommerce. - /root/wordpress — каталог для хранения файла конфигурации compose.yml. - /data/nginx/user_conf.d — директория для конфигурационных файлов Nginx. - /data/nginx/nginx-certbot.env — файл переменных окружения для настройки Certbot. - /etc/letsencrypt — место хранения SSL-сертификатов, смонтированное в контейнер Nginx.

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

Развертывание осуществляется с использованием Docker Compose. Процесс включает следующие этапы: 1. Установка Docker на сервере. 2. Создание директории /root/wordpress для конфигурации. 3. Генерация файла compose.yml с описанием сервисов. 4. Запуск контейнеров командой docker compose up -d в директории /root/wordpress.

В процессе установки также выполняется: - Скачивание архива плагина WooCommerce версии 8.7.0 с официального репозитория WordPress. - Распаковка архива и перемещение содержимого в директорию /data/wordpress/wp-content/plugins/.

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

Система состоит из трех основных контейнеров, описанных в файле compose.yml:

  • mariadb:
  • Образ: bitnami/mariadb:latest.
  • Политика перезапуска: unless-stopped.
  • Данные хранятся в именованном томе mariadb_data.
  • Переменные окружения задают пользователя wordpress, базу данных wordpress и пароли.

  • wordpress:

  • Образ: docker.io/wordpress:php8.2-fpm.
  • Политика перезапуска: unless-stopped.
  • Порт 9000 доступен только на локальном интерфейсе 127.0.0.1.
  • Директория /data/wordpress монтируется в /var/www/html.
  • Зависит от сервиса mariadb.
  • Переменные окружения указывают хост базы данных mariadb, пользователя, имя базы и пароли.

  • nginx:

  • Образ: jonasal/nginx-certbot:latest.
  • Политика перезапуска: unless-stopped.
  • Режим сети: host.
  • Зависит от сервиса wordpress.
  • Использует переменную CERTBOT_EMAIL для регистрации в Let's Encrypt.
  • Монтирует тома для сертификатов и пользовательских конфигураций.
  • Директория /data/wordpress монтируется в /var/www/html.

Для запуска всех сервисов используется команда:

docker compose up -d
выполняемая в директории /root/wordpress.

Базы данных

База данных управляется контейнером mariadb. - Имя базы данных: wordpress. - Пользователь базы данных: wordpress. - Пароль для пользователя и root-пользователя задается через переменную окружения, совпадающую с паролем SSH-доступа к серверу. - Данные базы данных сохраняются в Docker-томе mariadb_data, что обеспечивает их сохранность при перезапуске контейнера.

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

В качестве веб-сервера и прокси используется контейнер nginx на основе образа jonasal/nginx-certbot. - Сервер слушает порт 443 с поддержкой SSL. - Конфигурация сервера генерируется динамически и размещается в /data/nginx/user_conf.d. - SSL-сертификаты автоматически выдаются и обновляются через Certbot. - Путь к корневой директории сайта: /var/www/html. - PHP-запросы пересылаются на локальный адрес localhost:9000 через FastCGI. - Индексом по умолчанию является файл index.php.

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

Права доступа к файлам и директориям настроены следующим образом: - Директория /data/wordpress имеет владельца 33 (пользователь www-data) и группу 33, права доступа 0755. - Директория /root/wordpress имеет владельца root и группу root, права доступа 0640. - Файл конфигурации compose.yml имеет владельца root и группу root, права доступа 0644. - Конфигурационные файлы Nginx имеют владельца root и группу root, права доступа 0644.

Запуск, остановка и обновление

Управление сервисами осуществляется через Docker Compose в директории /root/wordpress.

Для запуска всех контейнеров в фоновом режиме:

docker compose up -d

Для остановки всех контейнеров:

docker compose down

Для просмотра логов работы сервисов:

docker compose logs -f

Для обновления образов и перезапуска сервисов:

docker compose pull
docker compose up -d

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