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

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

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

Для успешного развертывания системы должны быть соблюдены следующие условия:

  • Операционная система: Ubuntu или Debian.

  • Права доступа: Пользователь с правами root.

  • Порты:

    • Порт 80 (HTTP) и порт 443 (HTTPS) резервируются для работы Docker-контейнера Certbot/Nginx.

    • Apache перенаправляется на внутренний порт 8080.

FDQN итоговой панели на домене hostkey.in

Шаблон домена формируется следующим образом:

Параметр Значение
Префикс lamp
Домен hostkey.in
Полный шаблон lamp{Server_ID_from_Invapi}.hostkey.in

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

Основные директории, используемые в системе:

  • /root/nginx — рабочая директория для Docker Compose.

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

  • /data/nginx/nginx-certbot.env — файл переменных окружения для контейнера.

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

Развертывание включает в себя установку классического стека LAMP (Linux, Apache, MariaDB, PHP) и настройку проксирования через Docker:

  1. Установка системных пакетов Apache, MariaDB и PHP.

  2. Настройка Apache для работы на внутреннем порту 8080 с поддержкой заголовков X-Forwarded-Proto.

  3. Развертывание контейнера Nginx + Certbot через Docker Compose для обеспечения SSL-сертификатов.

Права доступа и безопасность

  • Брандмауэр: Порты 80 и 443 должны быть открыты для внешнего трафика.

  • Пользователи: Все основные процессы выполняются от имени root.

  • Ограничения: Apache настроен на прослушивание только локального интерфейса (127.0.0.1) на порту 8080, чтобы избежать конфликтов с Nginx.

Базы данных

В качестве системы управления базами данных используется MariaDB.

  • Версия: 10.11.

  • Хранение: Данные хранятся в стандартных директориях MariaDB (зависит от ОС).

  • Настройки: Учетная запись root использует пароль, переданный через системную переменную окружения.

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

В системе развернут один основной контейнер для управления SSL и проксированием:

Контейнер Nginx Certbot

  • Имя образа: jonasal/nginx-certbot:latest

  • Порты: Использует режим сети host (прослушивает порты хоста напрямую).

  • Тома (volumes):

    • nginx_secrets:/etc/letsencrypt — хранение сертификатов.

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

  • Переменные окружения:

    • CERTBOT_EMAIL: hkadm@hostkey.com (или значение из настроек).
  • Политика перезапуска: unless-stopped.

Инструкция по обновлению приложения

Обновление выполняется через pull и перезапуск контейнеров:

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

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

Для директорий используются следующие права:

  • /root/nginx: владелец root, группа root, режим 0755.

  • Конфигурационные файлы в /data/nginx/user_conf.d/: владелец root, группа root, режим 0644.

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

  • Конфигурация Docker Compose: /root/nginx/compose.yml

  • Пользовательские конфиги Nginx: /data/nginx/user_conf.d/{prefix}{server_id}.{zone}.conf

  • Файл проверки PHP: /var/www/html/info.php

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

Порт Протокол Назначение
80 HTTP Перенаправление через Nginx (Certbot)
443 HTTPS Основной доступ к приложению через SSL
8080 HTTP Внутренний трафик Apache

Запуск, остановка приложения

Управление контейнером прокси-сервера:

Запуск:

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

Остановка:

cd /root/nginx && docker compose down

Перезагрузка конфигурации Nginx без остановки контейнера:

docker compose exec -T nginx nginx -s reload

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