Com instal·lar la plataforma d'aprenentatge Moodle amb Nginx a CentOS 8


Moodle és el sistema de gestió d'aprenentatge més popular del món per crear llocs d'aprenentatge en línia sòlids. Compta amb una sèrie d'activitats i eines educatives entre les quals podeu triar, admet la gestió d'avaluació i s'envia amb certificats personalitzats. També permet la comunicació amb els teus estudiants en temps real amb una potent eina de videoconferència. A més, està preparat per a mòbils, de manera que els vostres estudiants poden aprendre dels seus dispositius mòbils.

  • Sistema operatiu: una instal·lació mínima de la pila LEMP instal·lada.
  • Espai en disc: 200 MB per a Moodle i 5 GB és probablement un mínim realista d'emmagatzemar contingut.
  • Processador: es recomana 1 GHz (min), 2 GHz de doble nucli o més.
  • Memòria: 512 MB (min), es recomana 1 GB o més. És probable que hi hagi més de 8 GB en un servidor de producció gran.

En aquesta pàgina

  • Creació d'un registre DNS de domini per al lloc web de Moodle
  • Instal·lació de la plataforma d'aprenentatge de Moodle al servidor CentOS 8
  • Configuració de NGINX per servir el lloc web de Moodle
  • Completa la instal·lació de Moodle mitjançant l'instal·lador web
  • Activeu HTTPS al lloc de Moodle amb Let's Encrypt

1. Comenceu creant un subdomini que els usuaris utilitzaran per accedir al lloc d'aprenentatge en línia de Moodle. Per exemple, si el vostre nom de domini és testprojects.me, podeu crear un subdomini anomenat learning.testprojects.me.

Obriu la configuració avançada de DNS del vostre nom de domini i afegiu un registre A tal com es mostra a la imatge següent.

2. Abans d'instal·lar Moodle, assegureu-vos que teniu les extensions PHP necessàries al vostre servidor, podeu executar l'ordre següent per instal·lar-les:

# 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. A continuació, creeu una base de dades per a l'aplicació Moodle de la manera següent.

# mysql -u root -p

A continuació, creeu la base de dades, l'usuari de la base de dades i creeu una contrasenya segura per a l'ús.

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 '[email ';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

4. Baixeu ara la darrera versió de Moodle (3.9 en el moment d'escriure) des del lloc web oficial del projecte moodle, extreu el fitxer d'arxiu i moveu-lo a la vostra arrel web (/var/www/html/) directori i, a continuació, configureu els permisos i la propietat adequats per permetre l'accés del servidor web al directori de Moodle, de la manera següent.

# 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. A continuació, creeu el directori moodledata que és la ubicació dels fitxers que es pengen o creen la interfície de Moodle i, a continuació, assigneu els permisos i la propietat adequats per permetre al servidor web l'accés de lectura i escriptura:

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

6. A continuació, aneu al directori d'instal·lació de Moodle i creeu un fitxer config.php a partir del fitxer de mostra config.dist.php proporcionat i, a continuació, obriu-lo per editar-lo per configurar-ne alguns. configuració clau per a la vostra plataforma Moodle, com ara els paràmetres de connexió de la base de dades i la ubicació del lloc i on pot trobar el directori moodledata:

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

Establiu el tipus de base de dades correcte, l'amfitrió de la base de dades correcte, el nom de la base de dades i l'usuari de la base de dades i la contrasenya de l'usuari.

$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    = '[email zzwd0L2';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

7. Definiu també l'URL que s'utilitza per accedir al vostre sit de Moodle, això especifica la ubicació del wwwroot on es troben els vostres fitxers web de Moodle, i també el dataroot (el directori moodledata):

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

8. En aquesta secció, heu de configurar NGINX per servir la vostra aplicació Moodle. Heu de crear-hi un bloc de servidor a la configuració de NGINX tal com es mostra.

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

Copieu i enganxeu la configuració següent al fitxer de configuració del bloc del servidor. Substituïu el nom del servidor pel nom del vostre subdomini creat anteriorment i el fastcgi_pass hauria d'apuntar a php-fpm (tingueu en compte que a CentOS 8, PHP-FPM accepta sol·licituds FastCGI utilitzant l'adreça definida a /etc/nginx/conf.d/php-). configuració 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;
}
}

Deseu el fitxer i tanqueu-lo.

9. A continuació, comproveu que la configuració de NGINX sigui correcta, si està bé, reinicieu els serveis nginx i php-fpm per aplicar els canvis recents:

# nginx -t
# systemctl restart nginx
# systemctl restart php-fpm

10. Si teniu SELinux habilitat al vostre sistema, executeu les ordres següents per establir el context correcte per accedir als fitxers web de Moodle al servidor:

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

11. A més, assegureu-vos que els serveis HTTP i HTTPS estiguin oberts al tallafoc per permetre el trànsit al servidor web NGINX:

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

12. Per accedir a l'instal·lador web de Moodle, obriu el vostre navegador web i navegueu mitjançant el subdomini que heu creat anteriorment:

http://learning.testprojects.me

Un cop es carregui la pàgina de benvinguda, llegiu els termes i condicions i feu clic a Continuar.

13. A continuació, l'instal·lador web comprovarà si el vostre sistema compleix els requisits per executar un lloc Moodle de la versió especificada. Podeu desplaçar-vos cap avall per veure més informació.

14. L'instal·lador es queixarà que HTTPS no està habilitat, ignorarà aquest error de moment (a la següent secció, mostrarem com habilitar HTTPS a Moodle) i feu clic a Continuar per iniciar la instal·lació real dels fitxers web.

15. Ara l'instal·lador iniciarà la instal·lació real dels fitxers Moodle tal com es mostra a la següent captura de pantalla. Un cop finalitzat, feu clic a Continuar.

16. En el següent pas, haureu d'actualitzar el compte d'administrador del vostre lloc Moodle actualitzant el nom d'usuari, la contrasenya, el nom i els cognoms i l'adreça de correu electrònic. A continuació, desplaceu-vos cap avall per la pàgina i feu clic a Actualitza el perfil.

17. A continuació, actualitzeu la configuració de la portada del lloc de Moodle. A continuació, desplaceu-vos cap avall i feu clic a Actualitza per començar a utilitzar el vostre lloc de Moodle.

18. A continuació, heu de registrar el vostre lloc seguint les instruccions de la pantalla. Podeu anar al tauler fent clic al tauler.

HTTPS afegeix la primera capa de seguretat al vostre lloc per permetre comunicacions segures entre els vostres usuaris i l'aplicació Moodle (especialment el servidor web NGINX que rep sol·licituds i ofereix respostes).

Podeu comprar un certificat SSL/TLS d'una CA comercial o utilitzar Let's Encrypt, que és gratuït i reconegut per tots els navegadors web moderns. Per a aquesta guia, farem servir Let's Encrypt.

19. El desplegament del certificat Let's Encrypt es gestiona automàticament mitjançant l'eina certbot. Podeu instal·lar certbot i altres paquets necessaris amb l'ordre següent:

# dnf install certbot python3-certbot-nginx

20. A continuació, executeu l'ordre següent per obtenir un certificat Let's Encrypt i feu que Certbot editi la vostra configuració NGINX automàticament per servir-la (també configurarà HTTP perquè es redirigirà automàticament a HTTPS).

# certbot --nginx

21. A continuació, executeu l'ordre següent per habilitar la renovació automàtica del certificat 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. A continuació, actualitzeu la configuració de Moodle per començar a utilitzar HTTPS.

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

canviar l'URL wwwroot de HTTP a HTTPS:

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

23. Per últim, però no menys important, confirmeu que el vostre lloc Moodle s'està executant ara amb HTTPS.

Això és tot de moment! Per obtenir més informació i opcions de configuració per executar la vostra nova plataforma d'aprenentatge, aneu al lloc web de Moodle i llegiu la documentació oficial.