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

Обзор развертывания 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-сертификатами.

  1. Подготовка системы:

  2. Очистка системы от устаревших репозиториев и ключей Docker и MariaDB.

  3. Обновление кэша пакетов apt.

  4. Установка веб-сервера Apache:

  5. Установка пакета apache2.

  6. Перенастройка прослушивания портов: Apache переводится на внутренний порт 8080 (вместо стандартного 80), чтобы освободить порты 80 и 443 для управления сертификатами.

  7. Настройка поддержки заголовков X-Forwarded-Proto для корректной работы через прокси.

  8. Установка базы данных MariaDB:

  9. Добавление официального репозитория MariaDB (версия 10.11).

  10. Установка пакетов mariadb-server и mariadb-client.

  11. Установка PHP:

  12. Для систем на базе Ubuntu: установка PHP 8.2 через репозиторий ppa:ondrej/php (пакеты php8.2, libapache2-mod-php8.2, php8.2-mysql, php8.2-curl, php8.2-cgi).

  13. Для систем на базе Debian: установка стандартных пакетов PHP.

  14. Настройка SSL и проксирования:

  15. Установка Docker.

  16. Развертывание контейнера 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):

    apt update && apt upgrade
    

  • Обновление прокси-сервера (Nginx/Certbot):

    cd /root/nginx
    docker compose pull
    docker compose up -d
    

Расположение конфигурационных файлов и данных

  • Конфигурации веб-сервера Apache: /etc/apache2/

  • Конфигурации Nginx (прокси): /data/nginx/user_conf.d/

  • Данные Docker Compose: /root/nginx/compose.yml

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

Порт Назначение
443 Внешний доступ по HTTPS (через Nginx)
80 Внешний доступ по HTTP (перенаправление на HTTPS)
8080 Внутренний порт Apache (для взаимодействия с прокси)
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×