Обзор развертывания LAMP на сервере¶
Предварительные требования¶
Для корректной работы приложения сервер должен соответствовать следующим критериям:
-
Операционная система: Ubuntu или Debian.
-
Права доступа: Пользователь с правами
root. -
Сетевые настройки:
-
Доступ к внешним репозиториям (APT, MariaDB, PPA).
-
Открытые порты для работы веб-сервера и SSL.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется автоматическое формирование поддомена по следующему шаблону:
| Параметр | Значение |
|---|---|
| Префикс | lamp |
| Домен | hostkey.in |
| Полный шаблон | lamp{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
В процессе установки создаются следующие директории и файлы:
-
/root/nginx/compose.yml— конфигурационный файл Docker Compose для управления прокси-сервером. -
/data/nginx/user_conf.d/— каталог с пользовательскими конфигурациями Nginx (включая настройки SSL). -
/data/nginx/nginx-certbot.env— файл переменных окружения для контейнера Certbot.
Процесс установки приложения¶
Развертывание представляет собой комплексную установку стека LAMP (Linux, Apache, MariaDB, PHP) с использованием Docker для управления SSL-сертификатами.
-
Подготовка системы:
-
Очистка системы от устаревших репозиториев и ключей Docker и MariaDB.
-
Обновление кэша пакетов
apt. -
Установка веб-сервера Apache:
-
Установка пакета
apache2. -
Перенастройка прослушивания портов: Apache переводится на внутренний порт
8080(вместо стандартного 80), чтобы освободить порты 80 и 443 для управления сертификатами. -
Настройка поддержки заголовков
X-Forwarded-Protoдля корректной работы через прокси. -
Установка базы данных MariaDB:
-
Добавление официального репозитория MariaDB (версия 10.11).
-
Установка пакетов
mariadb-serverиmariadb-client. -
Установка PHP:
-
Для систем на базе Ubuntu: установка PHP 8.2 через репозиторий
ppa:ondrej/php(пакетыphp8.2,libapache2-mod-php8.2,php8.2-mysql,php8.2-curl,php8.2-cgi). -
Для систем на базе Debian: установка стандартных пакетов PHP.
-
Настройка SSL и проксирования:
-
Установка Docker.
-
Развертывание контейнера Nginx с интеграцией Certbot для автоматического получения SSL-сертификатов.
Базы данных¶
В качестве системы управления базами данных используется MariaDB версии 10.11. Данные хранятся локально на сервере в стандартных директориях MariaDB. Настройка доступа осуществляется через системный клиент mariadb-client.
Контейнеры Docker и их запуск¶
Для обеспечения работы HTTPS используется контейнер, управляющий сертификатами:
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:latest |
| Режим сети | host |
| Политика перезапуска | unless-stopped |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt/data/nginx/user_conf.d:/etc/nginx/user_conf.d |
| Переменные окружения | CERTBOT_EMAIL (из настроек системы) |
Инструкция по обновлению приложения¶
Для обновления основного стека используется стандартный процесс управления пакетами и контейнерами:
-
Обновление системных компонентов (Apache, PHP, MariaDB):
-
Обновление прокси-сервера (Nginx/Certbot):
Расположение конфигурационных файлов и данных¶
-
Конфигурации веб-сервера Apache:
/etc/apache2/ -
Конфигурации Nginx (прокси):
/data/nginx/user_conf.d/ -
Данные Docker Compose:
/root/nginx/compose.yml
Доступные порты для подключения¶
| Порт | Назначение |
|---|---|
| 443 | Внешний доступ по HTTPS (через Nginx) |
| 80 | Внешний доступ по HTTP (перенаправление на HTTPS) |
| 8080 | Внутренний порт Apache (для взаимодействия с прокси) |