Ricerca nel sito web

Come installare la piattaforma di apprendimento Moodle con Nginx in CentOS 8


Moodle è il sistema di gestione dell'apprendimento più popolare al mondo per la creazione di robusti siti di apprendimento online. Presenta una gamma di attività e strumenti didattici tra cui scegliere, supporta la gestione delle valutazioni e viene fornito con certificati personalizzati. Consente inoltre la comunicazione con i tuoi studenti in tempo reale con un potente strumento di videoconferenza. Inoltre, è pronto per i dispositivi mobili, quindi i tuoi studenti possono imparare dai loro dispositivi mobili.

Requisiti del server Moodle

  • Sistema operativo: un'installazione minima del server CentOS 8 o RHEL 8 con stack LEMP installato.
  • Spazio su disco: 200 MB per Moodle e 5 GB sono probabilmente un minimo realistico per l'archiviazione dei contenuti.
  • Processore: consigliato 1 GHz (min), dual-core da 2 GHz o superiore.
  • Memoria: 512 MB (min), si consiglia 1 GB o più. 8 GB in più sono probabilmente su un server di produzione di grandi dimensioni.

Su questa pagina

  • Creazione di un record DNS di dominio per il sito Web Moodle
  • Installazione della piattaforma di apprendimento Moodle nel server CentOS 8
  • Configurazione di NGINX per servire il sito Web Moodle
  • Completa l'installazione di Moodle tramite il programma di installazione Web
  • Abilita HTTPS sul sito Moodle utilizzando Let's Encrypt

Creazione di un record DNS di dominio per il sito Web Moodle

1. Inizia creando un sottodominio che gli utenti utilizzeranno per accedere al sito di apprendimento online Moodle. Ad esempio, se il tuo nome di dominio è testprojects.me, puoi creare un sottodominio chiamato learning.testprojects.me.

Apri le impostazioni DNS avanzate del tuo nome di dominio e aggiungi un record A come mostrato nell'immagine seguente.

Installazione di Moodle nel server CentOS 8

2. Prima di installare Moodle, assicurati di avere le estensioni PHP richieste sul tuo server, puoi eseguire il seguente comando per installarle:

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. Successivamente, crea un database per l'applicazione Moodle come segue.

mysql -u root -p

Quindi creare il database, l'utente del database e creare una password sicura per l'uso.

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. Ora scarica l'ultima versione di Moodle (3.9 al momento in cui scrivo) dal sito web ufficiale del progetto Moodle, estrai il file di archivio e spostalo nella directory webroot (/var/www/html/), quindi imposta le autorizzazioni e la proprietà appropriate per consentire al server web l'accesso alla directory Moodle, come segue.

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. Successivamente, crea la directory moodledata che è la posizione dei file caricati o creati dall'interfaccia Moodle, quindi assegna le autorizzazioni appropriate e proprietà per consentire al server web l'accesso in lettura e scrittura ad esso:


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

6. Successivamente, spostati nella directory di installazione di Moodle e crea un file config.php dall'esempio config.dist.php fornito, quindi aprilo per la modifica per configurare alcune impostazioni chiave per la tua piattaforma Moodle, come i parametri di connessione al database e la posizione del sito e dove può trovare la directory moodledata:

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

Impostare il tipo di database corretto, l'host del database corretto, il nome del database, l'utente del database e la password dell'utente.

$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. Imposta anche l'URL utilizzato per accedere al tuo sito Moodle, questo specifica la posizione della wwwroot in cui si trovano i tuoi file web Moodle e anche la dataroot (la directory moodledata):

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

Configurazione di NGINX per servire il sito Web Moodle

8. In questa sezione, devi configurare NGINX per servire la tua applicazione Moodle. È necessario creare un blocco server nella configurazione NGINX come mostrato.

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

Copia e incolla la seguente configurazione nel file di configurazione del blocco server. Sostituisci il nome del server con il tuo nome del sottodominio creato sopra e fastcgi_pass dovrebbe puntare a php-fpm (nota che su CentOS 8, PHP-FPM accetta richieste FastCGI utilizzando l'indirizzo definito in /etc/nginx/conf.d/ configurazione 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;
}
}

Salva il file e chiudilo.

9. Quindi controlla la correttezza della configurazione NGINX, se è Ok, riavvia nginx e servizi php-fpm per applicare le modifiche recenti:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Se hai SELinux abilitato sul tuo sistema, esegui i seguenti comandi per impostare il contesto corretto per l'accesso ai file web Moodle sul server:

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

11. Inoltre, assicurati che i servizi HTTP e HTTPS siano aperti nel firewall per consentire il traffico verso NGINX server web:

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

Completa l'installazione di Moodle tramite il programma di installazione Web

12. Per accedere al programma di installazione web Moodle, apri il browser web e naviga utilizzando il sottodominio creato sopra:

http://learning.testprojects.me

Una volta caricata la pagina di benvenuto, leggi i termini e le condizioni e fai clic su Continua.

13. Successivamente, il programma di installazione web controllerà se il tuo sistema soddisfa i requisiti per l'esecuzione di un sito Moodle della versione specificata. È possibile scorrere verso il basso per visualizzare ulteriori informazioni.

14. Il programma di installazione si lamenterà del fatto che HTTPS non è abilitato, ignorerà l'errore per ora (nella sezione successiva mostreremo come abilitare HTTPS su Moodle) e fare clic su Continua, per avviare l'installazione vera e propria dei file web.

15. Ora il programma di installazione avvierà l'installazione vera e propria dei file Moodle come mostrato nello screenshot seguente. Una volta completato, fai clic su Continua.

16. Nel passaggio successivo, devi aggiornare l'account amministratore del tuo sito Moodle aggiornando nome utente, password, nome, cognome e indirizzo email. Quindi scorri verso il basso la pagina e fai clic su Aggiorna profilo.

17. Quindi aggiorna le impostazioni della prima pagina del sito Moodle. Quindi scorri verso il basso e fai clic su Aggiorna per iniziare a utilizzare il tuo sito Moodle.

18. Successivamente, devi registrare il tuo sito seguendo le istruzioni visualizzate sullo schermo. Puoi andare alla dashboard facendo clic su Dashboard.

Configurazione di HTTPS sul sito Moodle utilizzando Let's Encrypt

HTTPS aggiunge il primo livello di sicurezza al tuo sito per consentire comunicazioni sicure tra i tuoi utenti e l'applicazione Moodle (in particolare il server web NGINX che riceve richiede e fornisce risposte).

Puoi acquistare un certificato SSL/TLS da una CA commerciale o utilizzare Let's Encrypt, un servizio gratuito e riconosciuto da tutti i browser Web moderni. Per questa guida utilizzeremo Let's Encrypt.

19. La distribuzione del certificato Let's Encrypt viene gestita automaticamente utilizzando lo strumento certbot. Puoi installare certbot e altri pacchetti richiesti con il seguente comando:

dnf install certbot python3-certbot-nginx

20. Quindi esegui il seguente comando per ottenere un certificato Let's Encrypt e fare in modo che Certbot modifichi automaticamente la tua configurazione NGINX per servirlo (configurerà anche HTTP per essere reindirizzato automaticamente a HTTPS).

certbot --nginx

21. Quindi esegui il seguente comando per abilitare il rinnovo automatico del certificato 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. Successivamente, aggiorna la configurazione di Moodle per iniziare a utilizzare HTTPS.

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

cambia l'URL wwwroot da HTTP a HTTPS:

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

23. Ultimo ma non meno importante, conferma che il tuo sito Moodle è ora in esecuzione su HTTPS.

Per ora è tutto! Per ulteriori informazioni e opzioni di configurazione per eseguire la tua nuova piattaforma di apprendimento, vai al sito Web Moodle e leggi la documentazione ufficiale.