Как установить Moodle на Ubuntu 20.04

Moodle — это бесплатная и открытая система управления обучением (LMS). Она написана на языке программирования PHP. Moodle используется многими школами, университетами и организациями для лучшего обучения.

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

Это руководство покажет вам, как настроить свой собственный сервер Moodle с нуля на Ubuntu 20.04 с помощью стека LEMP.

Установка стека LEMP на Ubuntu

LEMP — это набор Linux программ с открытым исходным кодом включающий в себя: Nginx, MySQL или MariaDB, а так же  PHP. Так что LEMP — это альтернатива стеку LAMP, с Nginx в качестве веб — сервера вместо Apache.

В этом руководстве мы все установим на Ubuntu 20.04. Убедитесь, что у вас есть доступ к пользователю sudo.

Установка Nginx

Nginx необходим для обслуживания Moodle. Если у вас нет существующего экземпляра веб-сервера NGINX, Чтобы установить NGINX на Ubuntu 20.04 ознакомьтесь с этой статьей установка NGINX. После того как вы успешно настроили NGINX с вашим зарегистрированным доменным именем, вы можете вернуться к этому руководству и продолжить выполнение следующих шагов ниже.

Установка MySQL / MariaDB

База данных необходима для хранения данных moodle, включая информацию о пользователях, курсах и так далее.

Сейчас мы установим MariaDB, которая является системой управления базами данных. Напомню вам, что MariaDB поставляется с открытым исходным кодом, а также является производной от MySQL.

1. Выполните следующую команду, чтобы установить MariaDB на Ubuntu:

$ sudo apt-get install mariadb-server mariadb-client

Следующая команда выполнит встроенный скрипт для настройки и защиты установки mariadb.

$ sudo mysql_secure_installation

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

Enter current password for root (enter for none):
OK, successfully used password, moving on…

2. Установите пароль root для mariadb. Введите y, а затем введите нужный пароль.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!

3. Затем требуется удалить анонимных пользователей. Введите Y для подтверждения.

Remove anonymous users? [Y/n] y
… Success!

4. Следующий шаг касается отключения удаленного входа в систему. Требуется ввести y для подтверждения.

Disallow root login remotely? [Y/n] y
… Success!

5. Введите y, чтобы подтвердить удаление тестовой БД.

Remove test database and access to it? [Y/n] y
Dropping test database…
… Success!
Removing privileges on test database…
… Success!

6. И последнее, требуется перезагрузить таблицы привилегий, чтобы ваши изменения вступили в силу. Введите для подтверждения.

Reload privilege tables now? [Y/n] y
… Success!
Cleaning up…
All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

Настройка mariadb

Теперь вы можете войти в mariadb и создать базу данных для хранения данных moodle. Выполните приведенную ниже команду и введите корневой пароль mariadb. После того как появится соответствующий запрос.

$ sudo mysql -u root -p

После входа в систему требуется выполнить следующую команду. Эта команда создаст базу данных.

> CREATE DATABASE moodle;

Затем создайте учетную запись пользователя для Moodle в mariadb, делается это следующим образом.

Не забудьте заменить moodlesuper и пароль своими собственными значениями.

> CREATE USER ‘moodlesuper’@’localhost’ IDENTIFIED BY ‘password’;

А эта команда предоставляет необходимые разрешения для созданной учетной записи пользователя.

> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO ‘moodlesuper’@’localhost’;

Выйдите из mariadb с помощью этой команды.

> quit

Установка PHP на Ubuntu 20.04

PHP необходим для динамической обработки запросов пользователей MoodleNGINX работает с PHP при помощи PHP-FPM.  (FastCGI Process Manager)

Установите на Ubuntu необходимые компоненты PHP, выполнив команду ниже.

$ sudo apt-get install php-fpm php-mysql php-xml

После установки, следующим шагом является настройка NGINX для пересылки PHP запросов в PHP-FPM. Для этого вам нужно будет отредактировать файл сервера NGINX для вашего веб-сайта Moodle. Например, приведенная ниже команда откроет файл блока сервера для «cloudindevs.com».

$ sudo nano /etc/nginx/sites-available/cloudindevs

В файле блока сервера добавьте index.php к строке. А так же скопируйте следующую директиву конфигурации и вставьте ее прямо под существующей директивой.

# pass PHP scripts to FastCGI server
location ~ [^/].php(/|$) {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

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

Настройка NGINX для работы с PHP-FPM
Настройка NGINX для работы с PHP-FPM

Чтобы проверить конфигурацию выполните приведенную ниже команду для создания примера index.php. Файл находится в корневом каталоге вашего веб-сайта moodle. Не забудьте имя сайта.

$ sudo nano /var/www/cloudindevs.com/index.php

Скопируйте и вставьте приведенный ниже пример PHP — кода в index.php .

<?php echo 'NGINX is working with PHP-FPM!'; ?>

Сохраните и закройте файл index.php. Введите в браузер yourwebsite.com/index.php и вы должны увидеть пример страницы ниже.

Тестовая конфигурация PHP-FPM
Тестовая конфигурация PHP-FPM

Чтобы установить SSL сертификат ознакомьтесь этой статьей Настроить Nginx с Let’s Encrypt.

Установите Moodle на Ubuntu

На момент написания этого руководства последняя версия Moodle — 3.10.1. Для ее загрузки используйте команду wget.

$ sudo wget https://download.moodle.org/download.php/direct/stable310/moodle-3.10.1.tgz

Затем извлеките содержимое загруженного архива и поместите его в корневой каталог вашего веб-сайта Moodle.

$ sudo tar -zxvf moodle-3.10.1.tgz -C /var/www/cloudindevs.com

Теперь требуется изменить права собственности и разрешения на извлеченную папку Moodle.  Учетная запись службы NGINX по умолчанию — www-data.

$ sudo chown -R www-data:www-data /var/www/cloudindevs.com/moodle
$ sudo chmod -R 755 /var/www/cloudindevs.com/moodle

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

$ sudo mkdir /var/moodledata
$ sudo chown -R www-data:www-data /var/moodledata
$ sudo chmod -R 755 /var/moodledata

Конфигурация Moodle

Теперь пришло время создать основной конфигурационный файл Moodle. Для этого измените каталог, а затем скопируйте пример конфигурационного файла в извлеченную папку Moodle.

$ cd /var/www/cloudindevs.com/moodle
$ sudo cp config-dist.php config.php

Откройте config.php файл для редактирования.

$ sudo nano config.php

В разделе DATABASE SETUP данных config.php файла, сделайте следующее.

  1. Замените pgsql на mariadb
  2. Замените moodle на имя базы данных, созданной при настройке mariadb
  3. Измените имя пользователя на фактическое имя пользователя базы данных, которое вы создали ранее.
  4. Измените пароль на пароль вашей базы данных

Нажимайте клавишу со стрелкой вниз до тех пор, пока не попадете в раздел WEB SITE LOCATION, config.php файла.

Заменить  на  http://yoursite.com/moodle

Например, у меня была бы … https://cloudindevs.com/moodle’

Прокрутите страницу вниз до раздела DATA FILES LOCATION..

Измените /home/example/moodledata на ваш каталог данных moodle, который вы создали ранее. Мой был бы /var/moodledata

Доступ к веб-интерфейсу moodle

На этом этапе вы можете открыть веб-браузер и посетить yoursite.com/moodle чтобы завершить установку.

Вот что я вижу, когда иду в «www.cloudindevs.com/moodle».

Страница установки Moodle web
Страница установки Moodle web

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

Проверка сервера Moodle
Проверка сервера Moodle

Чтобы устранить эти проблемы, нажмите кнопку must be installed and enabled и следуйте инструкциям по установке необходимых расширений. После установки необходимых расширений перезапустите NGINX с помощью команды

sudo systemctl restart nginx

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

Пройдены проверки сервера Moodle
Пройдены проверки сервера Moodle

Если ошибки исчезли, вы можете нажать кнопку Продолжить (Continue).

Настройка Учетной Записи Главного Администратора Moodle

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

Кроме того, вам будет предложено настроить имя вашего сайта, сводку главной страницы, параметры местоположения и т. д. Когда вы закончите, нажмите кнопку Сохранить изменения (Save changes).

Сохранение настроек Moodle
Сохранение настроек Moodle

На этом завершается установка Moodle. Вот как выглядит мой новый сайт Moodle.

Moodle успешно установлен
Moodle успешно установлен

Заключение

Онлайн — обучение привлекает большое внимание людей с тех пор, как началась пандемия Covid — 19. Многие образовательные учреждения создают платформы электронного обучения с помощью систем управления онлайн-обучением, таких как Moodle.

В этом руководстве мы успешно установили и настроили сервер Moodle с нуля на Ubuntu 20.04. Для получения дополнительной информации о том, как использовать ваш веб-сайт Moodle и управлять им. Для этого обратитесь к официальным документам Moodle Docs.

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.