Поиск по сайту:

Как установить платформу обучения Moodle с Nginx в CentOS 8


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

Требования к серверу Moodle

  • Операционная система: минимальная установка сервера CentOS 8 или RHEL 8 с установленным стеком LEMP.
  • Дисковое пространство: 200 МБ для Moodle и 5 ГБ, вероятно, — это реальный минимум для хранения контента.
  • Процессор: 1 ГГц (минимум), рекомендуется двухъядерный с тактовой частотой 2 ГГц или выше.
  • Память: 512 МБ (минимум), рекомендуется 1 ГБ или больше. Более 8 ГБ, скорее всего, будет на большом производственном сервере.

На этой странице

  • Создание DNS-записи домена для веб-сайта Moodle
  • Установка платформы обучения Moodle на сервере CentOS 8
  • Настройка NGINX для обслуживания веб-сайта Moodle
  • Полная установка Moodle через веб-установщик
  • Включите HTTPS на сайте Moodle с помощью Let’s Encrypt

Создание DNS-записи домена для веб-сайта Moodle

1. Начните с создания поддомена, который пользователи будут использовать для доступа к сайту онлайн-обучения Moodle. Например, если ваше доменное имя — testprojects.me, вы можете создать поддомен с именем learning.testprojects.me.

Откройте дополнительные настройки DNS вашего доменного имени и добавьте запись A, как показано на следующем рисунке.

Установка Moodle на сервере CentOS 8

2. Перед установкой Moodle убедитесь, что на вашем сервере есть необходимые расширения PHP. Чтобы установить их, вы можете запустить следующую команду:

dnf install php-common php-iconv php-curl php-mbstring php-xmlrpc php-soap php-zip php-gd php-xml php-intl php-json libpcre3 libpcre3-dev graphviz aspell ghostscript clamav

3. Затем создайте базу данных для приложения Moodle следующим образом.

mysql -u root -p

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

MariaDB [(none)]> CREATE DATABASE moodledb;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodledb.* TO 'moodleadmin'@'localhost' IDENTIFIED BY 'p@zzwd0L2';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

4. Теперь загрузите последнюю версию Moodle (3.9 на момент написания) с официального сайта проекта Moodle, распакуйте архивный файл и переместите его в корневой каталог веб-сайта (/var/www/html/), затем установите соответствующие разрешения и права собственности, чтобы разрешить веб-серверу доступ к каталогу Moodle, как показано ниже.

wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
tar -xzvf  moodle-latest-39.tgz
mv moodle /var/www/html/
chmod 775 -R /var/www/html/moodle
chown nginx:nginx -R /var/www/html/moodle

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


mkdir -p /var/www/html/moodledata
chmod 770 -R /var/www/html/moodledata
chown :nginx -R /var/www/html/moodledata

6. Затем перейдите в каталог установки Moodle и создайте файл config.php из примера config.dist.php, затем откройте его для редактирования, чтобы настроить некоторые ключевые параметры для вашей платформы Moodle, такие как параметры подключения к базе данных, расположение сайта и местонахождение каталога Moodledata:

cd /var/www/html/moodle/
cp config-dist.php config.php
vim config.php

Установите правильный тип базы данных, правильный хост базы данных, имя базы данных, пользователя базы данных и пароль пользователя.

$CFG->dbtype    = 'mariadb';      // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci'
$CFG->dblibrary = 'native';     // 'native' only at the moment
$CFG->dbhost    = 'localhost';  // eg 'localhost' or 'db.isp.com' or IP
$CFG->dbname    = 'moodledb';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = 'p@zzwd0L2';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

7. Также установите URL-адрес, используемый для доступа к вашему сайту Moodle. Это указывает местоположение wwwroot, где расположены ваши веб-файлы Moodle, и также dataroot (каталог Moodledata):

$CFG->wwwroot   = 'http://learning.testprojects.me';
$CFG->dataroot  = '/var/www/html/moodledata';

Настройка NGINX для обслуживания веб-сайта Moodle

8. В этом разделе вам необходимо настроить NGINX для обслуживания вашего приложения Moodle. Вам необходимо создать для него блок сервера в конфигурации NGINX, как показано.

vim /etc/nginx/conf.d/moodle.conf

Скопируйте и вставьте следующую конфигурацию в файл конфигурации блока сервера. Замените имя сервера на имя субдомена, созданное выше, и fastcgi_pass должен указывать на php-fpm (примечание что в CentOS 8 PHP-FPM принимает запросы FastCGI, используя адрес, определенный в /etc/nginx/conf.d/ конфигурация php-fpm.conf).

server{
   listen 80;
    server_name learning.testprojects.me;
    root        /var/www/html/moodle;
    index       index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^(.+\.php)(.*)$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index           index.php;
        fastcgi_pass            php-fpm;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Сохраните файл и закройте его.

9. Затем проверьте правильность конфигурации NGINX. Если она ОК, перезапустите nginx и php-fpm для применения последних изменений:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Если в вашей системе включен SELinux, выполните следующие команды, чтобы установить правильный контекст для доступа к веб-файлам Moodle на сервер:

setsebool -P httpd_can_network_connect on
chcon -R --type httpd_sys_rw_content_t /var/www/html

11. Кроме того, убедитесь, что службы HTTP и HTTPS открыты в брандмауэре, чтобы разрешить трафик к NGINX. веб сервер:

firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Полная установка Moodle через веб-установщик

12. Чтобы получить доступ к веб-установщику Moodle, откройте веб-браузер и перейдите, используя субдомен, который вы создали выше:

http://learning.testprojects.me

После загрузки страницы приветствия прочтите положения и условия и нажмите Продолжить.

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

14. Установщик сообщит, что HTTPS не включен, пока игнорируйте эту ошибку (в следующем разделе мы покажем, как включить HTTPS в Moodle) и нажмите Продолжить, чтобы начать фактическую установку веб-файлов.

15. Теперь программа установки начнет фактическую установку файлов Moodle, как показано на следующем снимке экрана. По завершении нажмите Продолжить.

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

17. Затем обновите настройки главной страницы сайта Moodle. Затем прокрутите вниз и нажмите Обновить, чтобы начать использовать сайт Moodle.

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

Настройка HTTPS на сайте Moodle с помощью Let’s Encrypt

HTTPS добавляет первый уровень безопасности на ваш сайт, обеспечивая безопасную связь между вашими пользователями и приложением Moodle (особенно веб-сервером NGINX, который получает запросы и доставляет ответы).

Вы можете приобрести сертификат SSL/TLS в коммерческом центре сертификации или использовать Let’s Encrypt, который является бесплатным и распознается всеми современными веб-браузерами. В этом руководстве мы будем использовать Let’s Encrypt.

19. Развертывание сертификата Let’s Encrypt автоматически управляется с помощью инструмента certbot. Вы можете установить certbot и другие необходимые пакеты с помощью следующей команды:

dnf install certbot python3-certbot-nginx

20. Затем выполните следующую команду, чтобы получить сертификат Let's Encrypt, и Certbot автоматически отредактирует вашу конфигурацию NGINX для его обслуживания (он также настроит HTTP будет автоматически перенаправлен на HTTPS).

certbot --nginx

21. Затем выполните следующую команду, чтобы включить автоматическое продление сертификата Let’s Encrypt SSL/TLS:

echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

22. Затем обновите конфигурацию Moodle, чтобы начать использовать HTTPS.

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

измените URL-адрес wwwroot с HTTP на HTTPS:

$CFG->wwwroot   = 'https://learning.testprojects.me';

23. И последнее, но не менее важное: убедитесь, что ваш сайт Moodle теперь работает по HTTPS.

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