Обзор развертывания Moodle на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы и сетевые настройки:
-
Операционная система: Debian или Ubuntu.
-
Права доступа: Права суперпользователя (
root) для установки системных пакетов и конфигурации сервисов. -
Порты:
-
80(HTTP) — для первичной проверки и перенаправления на HTTPS. -
443(HTTPS) — основной порт для доступа к приложению. -
8080(внутренний) — используется для взаимодействия компонентов внутри системы.
FQDN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | moodle |
| Домен | hostkey.in |
| Полный шаблон | moodle{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
В системе используются следующие пути для хранения данных и конфигураций:
-
/var/www/moodle— директория установки приложения Moodle. -
/var/moodledata— директория с пользовательскими данными (файлы, загрузки). -
/etc/apache2/sites-available/moodle.conf— основной конфигурационный файл веб-сервера Apache. -
/etc/php/8.4/apache2/conf.d/99-moodle.ini— настройки PHP для веб-сервера. -
/etc/mysql/mariadb.conf.d/99-moodle.cnf— конфигурация базы данных MariaDB. -
/etc/cron.d/moodle— задание планировщика для выполнения фоновых задач Moodle.
Процесс установки приложения¶
Процесс развертывания включает в себя несколько этапов подготовки системы и установки компонентов:
-
Подготовка ОС: Обновление системных пакетов
APT, установка базовых утилит (curl,unzip,tar,gnupgи др.). -
Настройка PHP:
-
Добавление репозитория
ppa:ondrej/php. -
Установка PHP версии
8.4и необходимых расширений (mysql,xml,curl,zip,gd,intl,mbstring,soap,bcmath,opcache). -
Настройка лимитов памяти (256M) и времени выполнения скриптов через конфигурационные файлы.
-
Настройка веб-сервера:
-
Установка Apache2.
-
Активация модулей
rewrite,headers,sslиsocache_shmcb. -
Установка базы данных:
-
Настройка репозитория MariaDB (версия
10.11). -
Установка сервера
mariadb-server. -
Создание базы данных
moodleс кодировкойutf8mb4_unicode_ci. -
Развертывание Moodle:
-
Загрузка архива версии
5.1.1из официального репозитория. -
Распаковка в
/var/www/moodle. -
Создание директории данных
/var/moodledataс правами доступа для пользователяwww-data. -
Запуск CLI-инсталлятора Moodle для автоматической настройки базы данных и создания администратора.
Права доступа и безопасность¶
Безопасность системы обеспечивается следующими мерами:
-
Права на файлы: Директория приложения настроена с правами
0750для папок и0640для файлов, чтобы ограничить доступ сторонним пользователям. -
Конфиденциальность: Файл
config.phpзащищен правами доступа (0640), разрешая чтение только владельцуrootи группеwww-data. -
Безопасность данных: Директория
/var/moodledataимеет режим доступа0770, доступный только пользователю и группеwww-data. -
SSL: Использование сертификатов Let's Encrypt для шифрования трафика.
Базы данных¶
Для работы приложения используется сервер MariaDB:
-
Имя базы данных:
moodle -
Пользователь БД:
moodle -
Кодировка:
utf8mb4_unicode_ci(для полной поддержки Unicode). -
Параметры: Настроен параметр
max_allowed_packet = 64M.
Контейнеры Docker и их запуск¶
Приложение использует контейнерную среду для управления проксированием и SSL:
| Имя образа | Порты | Тома (volumes) | Переменные окружения | Политика перезапуска |
|---|---|---|---|---|
jonasal/nginx-certbot:latest | 80:80, 443:443 | nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d | CERTBOT_EMAIL=hkadm@hostkey.com | unless-stopped |
Кастомные скрипты и дополнительные настройки¶
Для обеспечения корректной работы Moodle через прокси-сервер выполняются следующие действия:
-
Настройка Cron: Создается системное задание в
/etc/cron.d/moodle, которое запускаетcron.phpкаждую минуту от имени пользователяwww-data. -
Конфигурация Proxy: В конфигурацию Nginx (через Docker) внедряются заголовки
HostиX-Forwarded-Proto, чтобы Moodle корректно распознавал HTTPS-соединение.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо:
-
Обновить системные пакеты через
apt upgrade. -
При использовании Docker-компонентов выполнить команду:
Расположение конфигурационных файлов и данных¶
| Тип | Путь |
|---|---|
| Конфигурация Moodle | /var/www/moodle/config.php |
| Данные пользователя | /var/moodledata |
| Логи Apache | ${APACHE_LOG_DIR}/moodle_error.log, ${APACHE_LOG_DIR}/moodle_access.log |
Доступные порты для подключения¶
-
HTTPS:
443(основной интерфейс). -
HTTP:
80(для перенаправления на HTTPS).
Запуск, остановка приложения¶
Управление веб-сервером и базой данных осуществляется через системный менеджер systemd:
-
Перезапуск Apache:
systemctl restart apache2 -
Перезапуск MariaDB:
systemctl restart mariadb