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

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

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

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

  1. Подготовка системы: обновление системных пакетов и установка базовых утилит (curl, unzip, tar, gnupg и др.).

  2. Настройка среды PHP: добавление репозитория ppa:ondrej/php и установка PHP версии 8.2 вместе с необходимыми расширениями (mysql, xml, curl, zip, gd, intl, mbstring, soap, bcmath, opcache).

  3. Настройка веб-сервера: установка Apache, активация модулей rewrite, headers, ssl и socache_shmcb. Настройка лимитов памяти (256M) и загрузки файлов (100M) в конфигурации PHP.

  4. Развертывание базы данных:

  5. Установка MariaDB (версия 10.11).

  6. Создание базы данных moodle с кодировкой utf8mb4_unicode_ci.

  7. Создание пользователя и предоставление прав на базу данных.

  8. Установка Moodle:

  9. Загрузка архива версии 5.1.1 из официального репозитория Moodle.

  10. Распаковка файлов в /var/www/moodle.

  11. Настройка прав доступа для веб-сервера (www-data).

  12. Автоматическая установка через интерфейс командной строки (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 необходимо:

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

  2. Загрузить новую версию архива Moodle.

  3. Распаковать её поверх текущей версии в /var/www/moodle.

  4. Выполнить скрипт обновления через 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.

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