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

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

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

Перед развертыванием стека LAMP на сервере необходимо выполнить следующие требования к среде:

  • Операционная система: Ubuntu (Jammy 22.04)

  • Права доступа: Доступ root или учетная запись с правами sudo

  • Домен: hostkey.in

  • Требуемые порты:

  • Порт 8080 (Внутренний порт приложения)

  • Порт 443 (Внешний порт HTTPS)

FQDN конечной панели

Приложение доступно через следующий формат полного доменного имени (FQDN) в домене hostkey.in:

  • Формат: lamp<Server ID>.hostkey.in:443

  • Внутреннее сопоставление пути: /

  • Внешнее сопоставление пути: /

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

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

  • Корневая директория веб-сервера: /var/www/html

  • Тестовый файл PHP info: /var/www/html/info.php

  • Пользовательская конфигурация Nginx: /data/nginx/user_conf.d

  • Хранилище секретов Nginx: /etc/letsencrypt

  • GPG-кольцо ключей MariaDB: /usr/share/keyrings/mariadb-keyring.gpg

  • Файл окружения Nginx: /data/nginx/nginx-certbot.env

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

Стек LAMP устанавливается с использованием следующих компонентов и версий:

  • Веб-сервер: Apache 2

  • База данных: MariaDB 10.11

  • Язык: PHP 8.2

  • Обратный прокси: Nginx (через Docker-контейнер)

Установка включает следующие этапы:

  • Обновление и апгрейд пакетов APT

  • Установка Apache 2

  • Добавление GPG-ключа MariaDB и репозитория для версии 10.11 на Ubuntu Jammy

  • Установка mariadb-server и mariadb-client

  • Добавление репозитория ppa:ondrej/php

  • Установка PHP 8.2 и следующих модулей:

  • php8.2

  • libapache2-mod-php8.2

  • php8.2-mysql

  • php8.2-curl

  • php8.2-cgi

  • Перезапуск службы Apache для применения изменений

Docker-контейнеры и их развертывание

Обратный прокси развертывается с использованием Docker-контейнера со следующей конфигурацией:

  • Образ: jonasal/nginx-certbot:latest

  • Политика перезапуска: unless-stopped

  • Режим сети: host

  • Переменная окружения: CERTBOT_EMAIL=hkadm@hostkey.com

  • Тома (Volumes):

  • nginx_secrets сопоставлен с /etc/letsencrypt

  • /data/nginx/user_conf.d сопоставлен с /etc/nginx/user_conf.d

  • Внешний том: nginx_secrets

Конфигурация контейнера определяется в файле compose.yml.

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

Система использует Nginx в качестве обратного прокси со следующей конфигурацией:

  • Образ: jonasal/nginx-certbot:latest

  • SSL/TLS: Автоматическая обработка образом Certbot

  • Кастомный домен: Настроен через файл nginx-certbot.env, расположенный по адресу /data/nginx/nginx-certbot.env

  • Пользовательская конфигурация: Кастомные конфигурации Nginx хранятся в /data/nginx/user_conf.d

  • Внешний порт: 443 (HTTPS)

  • Внутренний порт: 8080

Базы данных

Конфигурация базы данных выглядит следующим образом:

  • Движок базы данных: MariaDB 10.11

  • Пароль root: Настроен так же, как пароль SSH ({{ ansible_ssh_pass }})

  • Место хранения: Стандартные директории данных MariaDB на хосте

  • Подключение: Подключение через localhost для стека Apache/PHP

Настройки разрешений

В процессе развертывания применяются следующие права доступа:

  • Файл PHP Info: Для /var/www/html/info.php установлены права 0644

  • Каталог конфигурации Nginx: Доступ на чтение/запись для Docker-контейнера Nginx через монтирование томов

  • Сертификаты Let's Encrypt: Хранятся в /etc/letsencrypt через том Docker

Доступные порты для подключения

Следующие порты доступны для подключения к службам:

  • 8080: Внутренний порт для веб-сервера Apache

  • 443: Внешний порт для обратного прокси Nginx (HTTPS)

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

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

  • Apache:

  • Запуск: systemctl start apache2

  • Остановка: systemctl stop apache2

  • Перезапуск: systemctl restart apache2

  • Статус: systemctl status apache2

  • MariaDB:

  • Запуск: systemctl start mariadb

  • Остановка: systemctl stop mariadb

  • Перезапуск: systemctl restart mariadb

  • Статус: systemctl status mariadb

Для Docker-контейнера Nginx используются стандартные команды Docker:

  • Запуск: docker compose up -d

  • Остановка: docker compose down

  • Перезапуск: docker compose restart

  • Обновление образа: docker compose pull, за которым следует docker compose up -d

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