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

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

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

Процесс развертывания включает в себя несколько этапов подготовки системы и установки компонентов:

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

  2. Настройка PHP:

  3. Добавление репозитория ppa:ondrej/php.

  4. Установка PHP версии 8.4 и необходимых расширений (mysql, xml, curl, zip, gd, intl, mbstring, soap, bcmath, opcache).

  5. Настройка лимитов памяти (256M) и времени выполнения скриптов через конфигурационные файлы.

  6. Настройка веб-сервера:

  7. Установка Apache2.

  8. Активация модулей rewrite, headers, ssl и socache_shmcb.

  9. Установка базы данных:

  10. Настройка репозитория MariaDB (версия 10.11).

  11. Установка сервера mariadb-server.

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

  13. Развертывание Moodle:

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

  15. Распаковка в /var/www/moodle.

  16. Создание директории данных /var/moodledata с правами доступа для пользователя www-data.

  17. Запуск 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-соединение.

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

Для обновления основного приложения необходимо:

  1. Обновить системные пакеты через apt upgrade.

  2. При использовании Docker-компонентов выполнить команду:

    docker compose pull && docker compose up -d
    

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

Тип Путь
Конфигурация 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

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