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

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

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

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

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

  • Порты (TCP):

  • 22 (SSH)

  • 80 (HTTP)

  • 443 (HTTPS)

  • 8080 (Панель управления ISPConfig)

  • Права доступа: Требуются права суперпользователя (root) для выполнения установки и настройки системных служб.

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

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

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

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

  • /usr/local/ispconfig — основные файлы приложения ISPConfig.

  • /etc/nginx/sites-available/ — конфигурационные файлы веб-сервера Nginx.

  • /etc/nginx/sites-enabled/ — активные конфигурации веб-сервера.

  • /root/nginx — рабочая директория для Docker-контейнера с прокси-сервером.

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

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

Развертывание выполняется в несколько этапов:

  1. Подготовка окружения: Установка базовых утилит (wget, curl, ca-certificates, tar, unzip), Docker и настройка системных параметров (FQDN, /etc/hosts).

  2. Настройка безопасности: Настройка брандмауэра ufw и открытие необходимых портов.

  3. Установка базы данных: Развертывание MariaDB из корпоративного образа docker-srv.hostkey.com/docker-anonymous/bitnami/mariadb:latest.

  4. Автоматизированная установка ISPConfig:

  5. Загрузка дистрибутива через официальный репозиторий.

  6. Использование скрипта автоустановщика (ispconfig.ai.php) с параметрами для работы в связке с Nginx (без включения дополнительных модулей почты, DNS или FTP, если не указано иное).

  7. Настройка PHP: Установка PHP 8.3-FPM и его конфигурация для обработки запросов панели управления через Unix-сокет /run/php/php8.3-fpm.sock.

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

  • Брандмауэр (UFW): Включен по умолчанию. Разрешен доступ к портам 22, 80, 443 и 8080.

  • Пользователь веб-сервера: Для работы PHP и временных директорий используется пользователь www-data.

  • Безопасность файлов: Конфигурационный файл /usr/local/ispconfig/interface/lib/config.inc.php имеет права доступа 0640, чтобы обеспечить чтение только пользователю www-data.

Базы данных

Приложение использует MariaDB для хранения системных данных:

  • Имя базы данных: dbispconfig

  • Пользователь БД: ispconfig

  • Администратор (root): Используется локальный доступ через сокет или пароль, заданный при установке.

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

Для обеспечения работы SSL-сертификатов используется отдельный контейнер:

Имя образа Порты Тома (volumes) Переменные окружения Политика перезапуска
jonasal/nginx-certbot:latest 80, 443 (через host mode) nginx_secrets:/etc/letsencrypt
/data/nginx/user_conf.d:/etc/nginx/user_conf.d
CERTBOT_EMAIL=hkadm@hostkey.com unless-stopped

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

Для обновления основного приложения используется стандартный механизм обновления через пакетный менеджер:

  1. Обновление списка пакетов в системе.

  2. Применение обновлений для установленных компонентов PHP и системных библиотек.

Если приложение развернуто с использованием Docker-компонентов, необходимо выполнить перезапуск контейнеров: docker compose up -d (в директории /root/nginx).

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

  • Конфигурация панели: /usr/local/ispconfig/interface/lib/config.inc.php

  • Конфигурация веб-сервера (ISPConfig): /etc/nginx/sites-available/000-ispconfig.vhost

  • Данные Docker (SSL): Внешний том nginx_secrets.

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

Порт Назначение Протокол
80 HTTP (проксирование) TCP
443 HTTPS (SSL через Certbot) TCP
8080 Панель управления ISPConfig TCP

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

Управление веб-сервером Nginx:

  • Перезагрузка конфигурации: systemctl reload nginx

  • Проверка конфигурации на ошибки: nginx -t

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

  • Запуск/Обновление: docker compose up -d (в директории /root/nginx)
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×