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

Обзор развертывания веб-сервера с PHP и MariaDB на сервере

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

Для успешного развертывания системы необходимо наличие сервера с операционной системой Ubuntu версии 22.04 (Jammy). Требуется наличие прав суперпользователя (root) или прав sudo для выполнения команд установки и конфигурации.

Система использует следующие сетевые порты:

  • Порт 80 для HTTP-трафика.

  • Порт 443 для HTTPS-трафика.

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

Установка программного обеспечения выполняется через пакетный менеджер apt и включает следующие компоненты:

  • Веб-сервер Apache версии 2.

  • Система управления базами данных MariaDB версии 10.11.

  • Интерпретатор PHP версии 8.2 с модулями для работы с MySQL, CURL и CGI.

Процесс установки включает обновление репозиториев и установку следующих пакетов:

  • apache2

  • mariadb-server

  • mariadb-client

  • php8.2

  • libapache2-mod-php8.2

  • php8.2-mysql

  • php8.2-curl

  • php8.2-cgi

После установки модулей Apache перезапускается командой systemctl restart apache2. Для проверки корректной работы PHP создается файл /var/www/html/info.php с содержимым <?php phpinfo(); ?>.

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

В системе развернут контейнер Nginx, использующий образ jonasal/nginx-certbot:latest. Контейнер настроен на автоматический перезапуск, если он был остановлен не через команду остановки (restart: unless-stopped).

Контейнер работает в режиме сети хоста (network_mode: host), что позволяет ему напрямую использовать сетевой стек сервера.

Конфигурация контейнера включает следующие параметры:

  • Переменная окружения CERTBOT_EMAIL установлена в значение hkadm@hostkey.com.

  • Файл переменных окружения загружается из пути /data/nginx/nginx-certbot.env.

  • Монтируется внешний том nginx_secrets в директорию /etc/letsencrypt для хранения сертификатов.

  • Монтируется локальная директория /data/nginx/user_conf.d в /etc/nginx/user_conf.d внутри контейнера для пользовательских конфигураций.

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

В качестве прокси-сервера используется контейнер Nginx с поддержкой автоматической генерации и обновления SSL-сертификатов через Certbot.

Сертификаты хранятся в директории /etc/letsencrypt, которая монтируется из внешнего тома nginx_secrets. Пользовательские конфигурационные файлы Nginx размещаются в директории /data/nginx/user_conf.d на хосте и доступны внутри контейнера по пути /etc/nginx/user_conf.d.

Базы данных

База данных MariaDB версии 10.11 устанавливается как системный сервис. Репозиторий для установки добавляется с использованием GPG-ключа, скачанного с официального сайта MariaDB и сохраненного в /usr/share/keyrings/mariadb-keyring.gpg.

Данные базы данных хранятся в стандартных директориях, определенных конфигурацией MariaDB для Ubuntu. Подключение к базе данных осуществляется через локальный интерфейс или сетевой интерфейс, в зависимости от настроек конфигурационного файла сервера.

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

Файл проверки информации о PHP /var/www/html/info.php создается с правами доступа 0644, что позволяет всем пользователям читать файл, а владельцу — читать и записывать.

Права доступа к файлам конфигурации и данным контейнеров Nginx определяются правами на директории /data/nginx и томом nginx_secrets на хосте.

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