Установка Moodle на Debian

Справочник системного администратора

Moodle — система управления курсами, также известная как система управления обучением или виртуальная обучающая среда. Очень популярна за счет своего бесплатного распространения, поэтому имеет большую базу пользователей и разработчиков, пишущих под нее свои плагины. В данном руководстве рассмотрим пример установки Moodle на сервер Apache на операционной системе Debian.

Первым делом нам понадобится подготовленный сервер с Apache, PHP и MariaDB. Как подготовить такой сервер я описывал в этой статье.

Скачиваем дистрибутив Moodle с сайта: https://download.moodle.org/ (на момент написания статьи была доступна последняя версия 4.4.1):

wget https://download.moodle.org/download.php/direct/stable401/moodle-latest-401.tgz

Распаковываем архив:

tar -zxvf moodle-latest-401.tgz

Перемещаем файлы в корневую директорию html вашего сервера (по умолчанию – /var/www/html):

mv moodle /var/www/html

Теперь нам надо изменить конфигурацию PHP, открываем файл:

nano /etc/php/версия/apache2/php.ini

И вносим следующие строки:

extension=mysql.so
extension=gd.so

Так же нужно изменить значения параметров:

memory_limit = 80M
post_max_size = 80M
upload_max_filesize = 80M

post_max_size – устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize. В сущности, memory_limit должна быть больше чем post_max_size.
upload_max_filesize – устанавливает максимальный объем закачиваемого файла. Вы можете установить свои значения.

Сохраняем изменения комбинацией Ctrl+X и перезапускаем Apache:

/etc/init.d/apache2 restart

Внесем некоторые изменения и в файл конфигурации MariaDB:

nano /etc/mysql/my.cnf

Добавляем строки:

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

Сохраняем конфигурацию Ctrl+X и перезапускаем MariaDB:

/etc/init.d/mariadb restart

Далее нам нужно установить следующие пакеты:

sudo apt-get install php-curl php-zip php-xml

Перезапускаем Apache:

/etc/init.d/apache2 restart

Переходим по адресу http://ваш_IP/moodle/ и начинаем установку в веб-интерфейсе.

В процессе установки нам предложат указать путь к каталогу moodledata и предлагают разместить его в /var/www/moodledata. Можно оставить как есть или прописать свой собственный путь. Я оставлю предложенный по умолчанию вариант. Изначально Moodle попытается сам создать каталог moodledata, но скорее всего начнет ругаться, что директория www не доступна для записи. Облегчим ему задачу и создадим каталог за него:

mkdir /var/www/moodledata

Назначим пользователя Apache владельцем данной директории:

sudo chown www-data:www-data /var/www/moodledata/ -R

Теперь нам предстоит выбрать систему управления базами данных. Так как мы используем MariaDB, выбираем этот вариант:

Теперь нам предлагается указать параметры базы данных. Базу мы еще не создавали, самое время этим заняться!

Подключаемся к MariaDB и вводим пароль root:

mysql -u root -p

Создаем пользователя moodle для взаимодействия с базой данных (вместо password укажите свой надежный пароль):

CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'password';

Создаем базу данных moodle:

CREATE DATABASE moodle CHARACTER SET utf8 COLLATE utf8_general_ci;

Предоставляем пользователю moodle все привилегии для работы с базой moodle:

GRANT ALL PRIVILEGES ON moodle.* TO 'moodle'@'localhost';

Обновляем привилегии:

FLUSH PRIVILEGES;

Выходим из MariaDB – команда exit.

Заполняем параметры подключения к базе данных:

Программа установки уведомила нас, что у нее нет прав записи в корневой каталог html и она не смогла создать файл config.php:

Не беда, поможем ей. Создадим файл:

touch /var/www/html/moodle/config.php

Откроем его в редакторе:

nano /var/www/html/moodle/config.php

И вставим туда тот текст, который выдал установщик. Для вставки скопированного текста в nano используем комбинацию Shift+Insert. Сохраняем файл Ctrl+X.

После завершения установки Moodle я вместо страницы увидел сообщение: Moodle requires the mbstring PHP extension. Please install or enable the mbstring extension.

ОК, установим этот пакет:

sudo apt-get install php-mbstring

После обязательно перезагрузим Apache:

/etc/init.d/apache2 restart

Ура! Ошибка ушла и мы видим первую страницу диагностики Moodle:

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

Например, первое предупреждение с требованием включить расширение GD, решается командой:

sudo apt-get install php-gd

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

После того как внизу появится зеленый прямоугольник с текстом: “Конфигурация сервера отвечает всем минимальным требованиям” вы можете нажать кнопку “Продолжить”.

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

Когда установка завершится, мы увидим примерно такую страницу:

Нажимаем “Продолжить” и нам будет предложено создать администратора Moodle, указав его логин, пароль и прочие учетные данные:

Далее предлагается задать имя нашей системе Moodle, указать контакты службы поддержки и прочее. Заполняем и завершаем установку.

Так выглядит страница администратора:

Казалось бы все, установка окончена, наша система работает. Да, действительно так, но есть еще один момент, так сказать последний штрих. Нам необходимо настроить cron на автоматическое обслуживание Moodle. Запустим crontab от имени пользователя Apache:

crontab -u www-data -e

И пропишем задание с интервалом на 15 минут:

*/15 * * * * /usr/bin/php /var/www/html/moodle/admin/cli/cron.php > /dev/null

Обязательно оставьте пустую строку под нашей записью, после чего выходите из crontab.

Теперь каждые 15 минут скрипт Moodle будет отрабатывать, запуская обслуживание процессов таких как очистка данных, резервирование, отправка оповещений и т.п.

Вот на этом установку можно считать полностью завершенной!

Tags: