Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Установка Moodle LMS на Debian 12 Server

Установка Moodle LMS на Debian 12 Server

Платформа Moodle представляет собой популярное решение с открытым исходным кодом для организации систем управления обучением (LMS). Эта универсальная цифровая среда используется в различных образовательных целях: от разработки интерактивных учебных курсов и администрирования онлайн-школ до управления контентом и организации совместного обучения пользователей. Программное обеспечение разработано преимущественно на языке программирования PHP с использованием реляционных баз данных MySQL или MariaDB и может функционировать практически под управлением любой современной операционной системы. Администраторы вольны выбирать между двумя ведущими веб-серверами — Apache или Nginx. В этом подробном руководстве описан процесс развертывания системы Moodle LMS на базе серверной операционной системы Debian 12 с использованием классического стека LAMP (Linux, Apache, MariaDB и PHP), а также настройки комплексной безопасности с помощью межсетевого экрана UFW и защищенного протокола HTTPS посредством утилиты Certbot и центра сертификации Let’s Encrypt.

Обновление списка пакетов Debian
Выполнение команды apt update

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

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

  • Выделенный сервер под управлением операционной системы Debian 12.
  • Учетная запись обычного пользователя, не обладающего правами суперпользователя root, но имеющего настроенные привилегии администратора через утилиту sudo.
  • Зарегистрированное доменное имя, у которого корректно прописаны DNS-записи и которое указывает на актуальный внешний IP-адрес вашего сервера.

Установка зависимостей и стека LAMP

Поскольку программный комплекс Moodle написан на PHP и взаимодействует с базами данных MySQL или MariaDB, обязательным условием является инсталляция соответствующих программных пакетов в систему. В рамках данного руководства в качестве рабочего окружения применяется полноценный стек LAMP. Прежде чем запускать установку любых компонентов, настоятельно рекомендуется обновить локальный индекс пакетов операционной системы Debian с помощью следующей команды:

sudo apt update

После успешного обновления индексов выполните команду для установки необходимых зависимостей стека LAMP, включающего в себя веб-сервер Apache, сервер баз данных MariaDB и интерпретатор PHP вместе с ключевыми расширениями. Когда система выдаст соответствующий запрос, введите латинскую букву Y для подтверждения и продолжения инсталляции:

Установка стека LAMP
Установка зависимостей LAMP стека

sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath libapache2-mod-php

Как только процесс установки завершится, необходимо проверить состояние службы веб-сервера apache2, чтобы убедиться в ее корректной работе и активации автозапуска:

sudo systemctl is-enabled apache2
sudo systemctl status apache2

В выводе терминала можно будет увидеть, что веб-сервер Apache запущен и настроен на автоматический запуск при старте системы. Аналогичным образом следует проверить состояние службы базы данных MariaDB:

Проверка службы Apache2
Контроль работоспособности веб-сервера Apache

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Результат выполнения команды подтвердит, что сервер MariaDB находится в активном рабочем состоянии. На завершающем этапе проверки базовых зависимостей проверьте версию установленного интерпретатора PHP и запросите список активных модулей:

php -v
php -m

Проверка службы MariaDB
Контроль работоспособности сервера MariaDB

Вы увидите, что в системе развернут PHP версии 8.2, причем такие стандартные и критически важные модули, как curl, exif и date, уже включены по умолчанию.

Настройка межсетевого экрана UFW

После успешного развертывания стека LAMP необходимо позаботиться о базовой сетевой безопасности сервера, установив и настроив межсетевой экран UFW (Uncomplicated Firewall). В процессе настройки потребуется открыть стандартные порты для удаленного администрирования по протоколу SSH, а также для входящего веб-трафика по протоколам HTTP и HTTPS, после чего активировать брандмауэр.

Установка утилиты UFW выполняется стандартным пакетным менеджером с помощью следующей команды:

sudo apt install ufw

Проверка версии PHP и модулей
Просмотр установленной версии PHP и активных модулей

Когда установка будет завершена, выполните команды для открытия сетевых портов, необходимых для работы службы OpenSSH, а также веб-трафика на 80-й порт (HTTP) и 443-й порт (HTTPS). Система должна вернуть подтверждение в виде сообщения об успешном обновлении правил:

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Теперь выполните команду для запуска и добавления брандмауэра UFW в автозагрузку операционной системы Debian. Когда система попросит подтвердить действие, введите y для продолжения. В результате появится сообщение о том, что брандмауэр активен и включен при старте системы:

sudo ufw enable

Установка брандмауэра UFW
Установка UFW на Debian 12

В завершение настройки межсетевого экрана проверьте его актуальный статус:

sudo ufw status

В выводе утилиты будет указано, что статус UFW имеет значение active, а правила для OpenSSH, а также портов 80 и 443 находятся в состоянии ALLOWED (разрешено).

Настройка сервера MariaDB

Перед тем как переходить непосредственно к инсталляции самой платформы Moodle, администратору требуется изменить стандартный движок хранения данных на innodb, установить формат Barracuda в качестве значения по умолчанию, а также выполнить процедуру первичной защиты сервера базы данных с помощью встроенной утилиты mariadb-secure-installation.

Откройте основной конфигурационный файл сервера MariaDB, расположенный по пути /etc/mysql/mariadb.conf.d/50-server.cnf, используя текстовый редактор nano:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Внесите в конфигурационный файл следующие параметры, которые активируют формат Barracuda и зададут современный движок InnoDB:

Проверка статуса UFW
Проверка активных правил брандмауэра

innodb_file_format = Barracuda
default_storage_engine = innodb
innodb_large_prefix = 1
innodb_file_per_table = 1

Сохраните изменения в файле и выйдите из редактора. После этого перезапустите службу базы данных MariaDB с помощью системного менеджера, чтобы применить внесенные изменения:

sudo systemctl restart mariadb

Затем запустите интерактивную утилиту безопасности базы данных:

sudo mariadb-secure-installation

В процессе работы скрипта система последовательно задаст несколько вопросов для усиления безопасности:

  • Нажмите клавишу ENTER при запросе текущего пароля администратора root (так как пароль будет задан на следующем этапе).
  • Введите букву n при предложении переключиться на аутентификацию через unix_socket.
  • Введите Y для установки нового пароля администратора root, после чего введите и подтвердите ваш новый надежный пароль.
  • Введите Y для удаления анонимных пользователей из базы данных.
  • Введите Y для отключения возможности удаленного входа под учетной записью root.
  • Введите Y для удаления стандартной тестовой базы данных и отзыва прав доступа к ней.
  • Введите Y для перезагрузки таблиц привилегий и применения всех сделанных изменений.

После завершения работы утилиты можно переходить к следующему шагу — созданию отдельной базы данных и специализированного пользователя для Moodle.

Создание базы данных и пользователя для Moodle

Имея корректно настроенный и защищенный сервер MariaDB, создадим изолированную базу данных и пользователя, которые будут задействованы платформой Moodle. Для этого используется официальный клиент командной строки.

Проверка привилегий базы данных
Вывод привилегий пользователя Moodle в MariaDB

Войдите на сервер базы данных от имени администратора root, используя следующую команду, и введите созданный ранее пароль при появлении запроса:

sudo mariadb -u root -p

Выполните следующие SQL-запросы в консоли СУБД, чтобы создать новую базу данных с поддержкой кодировки utf8mb4, а также пользователя moodle с надежным паролем MoodlePassw0rd (обязательно замените демонстрационные учетные данные на собственные в целях безопасности):

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";
FLUSH PRIVILEGES;

Настройка директорий Moodle
Загрузка и распаковка архива Moodle

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

SHOW GRANTS FOR moodle@localhost;

В завершение работы с консолью СУБД введите команду QUIT для выхода из интерфейса MariaDB.

Настройка виртуального хоста Apache
Проверка конфигурации веб-сервера Apache

Конфигурация параметров PHP

После завершения настройки базы данных и создания пользователя необходимо скорректировать глобальный конфигурационный файл PHP php.ini, изменив некоторые параметры по умолчанию в соответствии с системными требованиями Moodle.

Откройте файл конфигурации PHP для веб-сервера Apache с помощью редактора nano:

sudo nano /etc/php/8.2/apache2/php.ini

Найдите и измените параметры конфигурации на указанные ниже значения (параметр memory_limit можно гибко регулировать в зависимости от общего объема оперативной памяти, доступной на вашем сервере):

Выбор языка установки Moodle
Выбор языка в веб-интерфейсе Moodle

memory_limit = 256M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/Amsterdam
max_input_vars = 5000

Сохраните отредактированный файл и закройте текстовый редактор. После этого перезапустите службу веб-сервера Apache для применения новых параметров PHP:

sudo systemctl restart apache2

Загрузка и подготовка исходного кода Moodle

Теперь инфраструктура полностью готова к загрузке исходного кода Moodle, созданию рабочего каталога веб-приложения и специальной директории для хранения пользовательских данных. В данном примере каталог установки будет располагаться по пути /var/www/moodle, а директория данных — по адресу /var/www/moodledata.

Выбор домена и каталога данных Moodle
Указание путей к сайту и каталогу данных

Перейдите в корневую веб-директорию /var/www и загрузите актуальный архив с исходным кодом Moodle с помощью утилиты wget:

cd /var/www
sudo wget https://download.moodle.org/download.php/direct/stable405/moodle-latest-405.tgz

После завершения загрузки распакуйте архив с помощью утилиты tar. Распакованная папка автоматически получит имя moodle, а итоговый путь установки будет выглядеть как /var/www/moodle:

tar -xf moodle-latest-405.tgz

Выбор драйвера базы данных MariaDB
Выбор MariaDB в качестве базы данных для Moodle

Затем создайте отдельную директорию /var/www/moodledata, которая будет использоваться системой для хранения загруженных файлов курсов, документов и пользовательского контента:

mkdir -p /var/www/moodledata

На завершающем этапе подготовки каталогов измените владельца для папок /var/www/moodle и /var/www/moodledata на пользователя веб-сервера www-data, а также предоставьте необходимые права на чтение, запись и выполнение:

Конфигурация параметров базы данных
Ввод реквизитов базы данных в веб-мастере

sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata
sudo chmod u+rwx /var/www/moodle /var/www/moodledata

Настройка виртуального хоста Apache

Следующим шагом является создание конфигурационного файла виртуального хоста Apache для вашей образовательной платформы. Перед началом убедитесь, что ваше доменное имя корректно разрешается и указывает на IP-адрес сервера.

Создайте новый файл виртуального хоста /etc/apache2/sites-available/moodle.conf в текстовом редакторе:

sudo nano /etc/apache2/sites-available/moodle.conf

Уведомление об авторских правах Moodle
Подтверждение условий лицензии в мастере установки

Вставьте следующую конфигурацию виртуального хоста. Обязательно замените параметр ServerName на ваше реальное доменное имя, а также укажите актуальный адрес электронной администратора в строке ServerAdmin:

<VirtualHost *:80>
DocumentRoot /var/www/moodle/
ServerName moodle.howtoforge.local
ServerAdmin admin@example.com
<Directory /var/www/moodle/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/apache2/moodle_error.log
CustomLog /var/log/apache2/moodle_access.log combined
</VirtualHost>

Сохраните файл конфигурации и закройте редактор. Теперь активируйте модуль перезаписи URL-адресов rewrite, а также созданный конфигурационный файл виртуального хоста Moodle с помощью специальных утилит:

sudo a2enmod rewrite
sudo a2ensite moodle.conf

Проверка системных требований сервера
Диагностика соответствия сервера требованиям Moodle

Перед перезапуском службы обязательно проверьте правильность синтаксиса конфигурации Apache с помощью утилиты apachectl. Если все настройки выполнены верно, на экране появится сообщение Syntax is OK:

sudo apachectl configtest

После успешной проверки перезапустите веб-сервер Apache, чтобы применить активированный виртуальный хост:

sudo systemctl restart apache2

Процесс установки Moodle
Процесс развертывания таблиц и модулей

Защита Moodle с помощью HTTPS

На данном этапе программный комплекс Moodle полностью готов к работе. Однако перед началом финальной установки настоятельно рекомендуется защитить веб-трафик с помощью SSL-сертификатов, используя утилиту Certbot и центр сертификации Let’s Encrypt. Данный шаг является обязательным при развертывании платформы на публичном сервере. Если вы проводите установку в локальной среде разработки, этот шаг можно пропустить или настроить самоподписанные сертификаты.

Установите пакет certbot вместе со специальным плагином для веб-сервера Apache с помощью следующей команды, подтвердив установку вводом буквы Y:

sudo apt install certbot python3-certbot-apache

Создание учетной записи администратора
Создание учетной записи главного администратора системы

После завершения установки запустите утилиту Certbot для автоматической генерации и установки SSL-сертификатов. Обязательно укажите ваше доменное имя и контактный адрес электронной почты:

sudo certbot --apache --agree-tos --no-eff-email -m admin@example.com -d moodle.howtoforge.local

По завершении процесса SSL-сертификаты будут автоматически сохранены в директории /etc/letsencrypt/live/domain.com, а ваша инсталляция Moodle будет переведена на безопасный протокол HTTPS.

Инсталляция через веб-интерфейс

Откройте ваш веб-браузер и перейдите по доменному имени вашей платформы Moodle (например, https://moodle.howtoforge.local/). После этого запустится официальный мастер установки приложения.

Настройка параметров сайта Moodle
Ввод названия и общих параметров учебной платформы

Выберите желаемый язык интерфейса и нажмите кнопку продолжения. На следующем шаге укажите доменный адрес вашей платформы и проверьте путь к каталогу пользовательских данных /var/www/moodledata. В качестве драйвера базы данных выберите MariaDB и введите ранее созданные учетные данные: имя базы данных, имя пользователя и пароль. Подтвердите условия лицензионного соглашения и ознакомьтесь с уведомлением об авторских правах.

В разделе проверки состояния системы (Server checks) мастер автоматически проверит соответствие вашего сервера Debian всем техническим требованиям Moodle. Статус каждого отдельного пункта должен отображаться как OK. После прохождения проверок начнется процесс автоматической установки компонентов системы.

Как только инсталляция будет завершена, укажите учетные данные администратора образовательной платформы: имя пользователя, действующий адрес электронной почты и надежный пароль. Затем заполните общую информацию о вашем сайте. На завершающем этапе перед вами откроется главная панель управления администратора Moodle.

Заключение

Установка системы управления обучением Moodle LMS на сервер под управлением операционной системы Debian 12 успешно завершена. Вы развернули полноценную рабочую среду на базе стека LAMP (Linux, Apache, MariaDB и PHP), защитили сервер с помощью межсетевого экрана UFW, а также настроили безопасное шифрование трафика по протоколу HTTPS с помощью Certbot и Let’s Encrypt. В дальнейшем вы сможете настраивать индивидуальные темы оформления, устанавливать дополнительные плагины и модули для расширения функционала или использовать официальное руководство пользователя Moodle для эффективного администрирования учебного процесса.

Панель управления администратора Moodle
Интерфейс панели управления администратора после завершения установки

Источник: howtoforge.com

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

01.
На платформе MonsterInsights