Обзор развертывания Moodle на сервере¶
Предварительные требования¶
Для успешного развертывания системы необходимо обеспечить наличие следующих компонентов и параметров:
-
Операционная система: Ubuntu или Debian.
-
Права доступа: права суперпользователя (root) для установки системных пакетов и настройки конфигураций.
-
Порты:
-
80(HTTP) — для первичной настройки и перенаправления на HTTPS. -
443(HTTPS) — основной порт для работы приложения. -
Зависимости: наличие доступа к репозиториям APT и возможность загрузки файлов из интернета.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | moodle |
| Домен | hostkey.in |
| Полный шаблон | moodle{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
После установки приложение использует следующие директории для хранения данных и конфигураций:
-
/var/www/moodle— основные файлы приложения Moodle. -
/var/moodledata— пользовательские данные (загрузки, файлы). -
/etc/apache2/sites-available/moodle.conf— конфигурация веб-сервера Apache. -
/etc/php/8.2/apache2/conf.d/99-moodle.ini— настройки PHP для веб-сервера. -
/etc/mysql/mariadb.conf.d/99-moodle.cnf— конфигурация базы данных MariaDB. -
/etc/cron.d/moodle— задание планировщика (cron) для автоматических задач Moodle.
Процесс установки приложения¶
Развертывание приложения выполняется в несколько этапов:
-
Подготовка системы: обновление системных пакетов и установка базовых утилит (
curl,unzip,tar,gnupgи др.). -
Настройка среды PHP: добавление репозитория
ppa:ondrej/phpи установка PHP версии8.2вместе с необходимыми расширениями (mysql,xml,curl,zip,gd,intl,mbstring,soap,bcmath,opcache). -
Настройка веб-сервера: установка Apache, активация модулей
rewrite,headers,sslиsocache_shmcb. Настройка лимитов памяти (256M) и загрузки файлов (100M) в конфигурации PHP. -
Развертывание базы данных:
-
Установка MariaDB (версия
10.11). -
Создание базы данных
moodleс кодировкойutf8mb4_unicode_ci. -
Создание пользователя и предоставление прав на базу данных.
-
Установка Moodle:
-
Загрузка архива версии
5.1.1из официального репозитория Moodle. -
Распаковка файлов в
/var/www/moodle. -
Настройка прав доступа для веб-сервера (
www-data). -
Автоматическая установка через интерфейс командной строки (CLI) с созданием файла
config.php.
Права доступа и безопасность¶
Безопасность системы обеспечивается следующими мерами:
-
Ограничение доступа к файлам: файлы приложения имеют права
0640, а директории —0750. -
Защита данных: директория
/var/moodledataнастроена с правами0770и принадлежит пользователюwww-data. -
Безопасность конфигурации: файл
config.phpзащищен от несанкционированного чтения (права0640). -
SSL: автоматическое получение и установка SSL-сертификатов через Certbot для обеспечения шифрования трафика.
Базы данных¶
Для работы приложения используется сервер MariaDB:
-
Тип подключения: локальное подключение (
localhost). -
Имя базы данных:
moodle. -
Кодировка:
utf8mb4(поддержка эмодзи и расширенных символов). -
Хранение данных: данные БД хранятся в системных директориях MariaDB.
Контейнеры Docker и их запуск¶
В системе используется контейнер для обеспечения работы прокси-сервера с автоматическим обновлением сертификатов:
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:latest |
| Имя контейнера | nginx-nginx-1 |
| Порты | 80, 443 |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d |
| Политика перезапуска | unless-stopped |
Кастомные скрипты и дополнительные настройки¶
В процессе развертывания выполняются следующие действия:
-
Настройка Cron: создается задание в
/etc/cron.d/moodle, которое запускает скриптcron.phpкаждую минуту от имени пользователяwww-data. Это необходимо для выполнения фоновых задач Moodle (отправка уведомлений, очистка кэша и т.д.). -
Настройка проксирования: выполняется автоматическая правка конфигурационных файлов Nginx для корректной передачи заголовков
HostиX-Forwarded-Proto, что критически важно для работы приложения через SSL/Reverse Proxy.
Инструкция по обновлению приложения¶
Для обновления основного приложения Moodle необходимо:
-
Обновить системные пакеты.
-
Загрузить новую версию архива Moodle.
-
Распаковать её поверх текущей версии в
/var/www/moodle. -
Выполнить скрипт обновления через CLI (если требуется) для завершения миграции базы данных.
Расположение конфигурационных файлов и данных¶
-
Конфигурация Moodle:
/var/www/moodle/config.php -
Данные пользователя:
/var/moodledata -
Логи Apache:
${APACHE_LOG_DIR}/moodle_error.log,${APACHE_LOG_DIR}/moodle_access.log
Доступные порты для подключения¶
-
80(HTTP) — доступен для веб-сервера. -
443(HTTPS) — основной порт для защищенного доступа к интерфейсу Moodle.