Обзор развертывания LAMP на сервере¶
Предварительные требования¶
Для корректной работы приложения необходимы следующие параметры:
| Параметр | Значение |
|---|---|
| Операционная система | Ubuntu (Jammy) |
| Домен | hostkey.in |
| Внешний порт (HTTPS) | 443 |
| Внутренний порт | 8080 |
FDQN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | lamp |
| Домен | hostkey.in |
| Полный шаблон | lamp{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
В системе используются следующие пути для хранения конфигураций и данных:
-
/var/www/html/— корневая директория веб-сервера Apache. -
/data/nginx/user_conf.d/— пользовательские конфигурации Nginx. -
/data/nginx/nginx-certbot.env— файл переменных окружения для Certbot. -
/etc/letsencrypt— хранилище сертификатов (внутри томаnginx_secrets).
Процесс установки приложения¶
Приложение развертывается путем установки стандартного стека LAMP (Linux, Apache, MariaDB, PHP) и контейнера Nginx с поддержкой SSL:
-
Обновление системных пакетов через
apt. -
Установка веб-сервера Apache.
-
Добавление репозитория и установка MariaDB версии 10.11.
-
Добавление репозитория PPA Ondrej для установки PHP 8.2 и необходимых модулей (
php8.2,libapache2-mod-php8.2,php8.2-mysql,php8.2-curl,php8.2-cgi). -
Создание проверочного файла
/var/www/html/info.php.
Базы данных¶
В качестве системы управления базами данных используется MariaDB версии 10.11. Данные хранятся локально на сервере. Для доступа к базе данных используется учетная запись root, пароль для которой соответствует значению переменной ansible_ssh_pass.
Контейнеры Docker и их запуск¶
Для управления SSL-сертификатами используется контейнер Nginx с Certbot:
services:
nginx:
image: jonasal/nginx-certbot:latest
restart: unless-stopped
network_mode: host
volumes:
- nginx_secrets:/etc/letsencrypt
- /data/nginx/user_conf.d:/etc/nginx/user_conf.d
Инструкция по обновлению приложения¶
Обновление выполняется через обновление системных пакетов и перезапуск сервисов. Для обновления компонентов PHP, Apache и MariaDB используется команда:
apt update && apt upgrade -y
Для обновления контейнера Nginx необходимо выполнить:
docker compose pull && docker compose up -d
Настройки прав¶
Файлы в директории веб-сервера имеют следующие права доступа:
/var/www/html/info.php:0644.