• seguici su feed rss
  • seguici su twitter
  • seguici su linkedin
  • seguici su facebook
  • cerca

SEI GIA' REGISTRATO? EFFETTUA ADESSO IL LOGIN.



ricordami per 365 giorni

HAI DIMENTICATO LA PASSWORD? CLICCA QUI

NON SEI ANCORA REGISTRATO ? CLICCA QUI E REGISTRATI !

Moodle: installazione in un server linux dedicato

di :: 13 ottobre 2020
Moodle: installazione in un server linux dedicato

Moodle è una piattaforma per gestione attività di e-learning, e che consente pubblicare materiali didattici, corsi, attività di test, calendari, comunicare con gli utenti (allievi).

E' scritta in PHP ed è la soluzione, ad oggi, più utilizzata da università ed enti formativi per la sua semplicità di utilizzo.

Ad esempio, questa è l'installazione fatta dall'Università degli studi di Torino

Dominio e configurazione spazio web

Abbiamo bisogno, innanzitutto, di un dominio e di uno spazio web, in un server dedicato su cui abbiamo accesso come utenti root, dove poter collocare la piattaforma.

Se invece sei interessato ad installare Moodle in un comune spazio web condiviso, ti invito a leggere questo articolo.

Nel nostro esempio utilizziamo un server linux con distribuzione CentOS.

Sul nostro server abbiamo operato tutte le operazioni necessarie per mettere in piedi un sito web

  • abbiamo acquistato un dominio, ad esempio "www.miosito.it"
  • abbiamo puntato i DNS del dominio sull'ip del server dedicato
  • abbiamo configurato il server web Apache
  • abbiamo installato PHP in versione 7.2 con alcuni suoi moduli (php php-cli php-common php-fpm php-gd php-intl php-json php-mbstring php-mysqlnd php-opcache php-pdo php-xml php-xmlrpc php-pecl-zip php-soap)
  • abbiamo installato MariaDB come database
  • abbiamo installato un certificato SSL per il nostro dominio

Il path assoluto in cui vogliamo installare Moodle è il seguente

/var/www/html/miosito

Abbiamo creato questa directory ed in Apache abbiamo creato un virtual host in modo tale al dominio "www.miosito.it" risponda Moodle in questo path.

Tutte queste configurazioni esulano da quanto spiegheremo in questo articolo, ed immagino che, se stai lavorando su un server, tu già sappia come procedere a configurare un sito web. In caso contrario ti rimando ad altri articoli che abbiamo trattato su questo sito.

Nulla vieta che Moodle venga installato in una sottocartella dello spazio web, come nel caso in cui il nostro sito abbia altre sezioni e pagine, in aggiunta alla sezione di e-learning. In questo caso devi creare una sottocartella per Moodle, ad esempio chiamata "moodle"

/var/www/html/miosito/moodle

La mia installazione non prevede questa sottocartella per cui installerò il pacchetto sotto "/var/www/html/miosito"

Adesso possiamo scaricare il pacchetto Moodle

Abbiamo due vie per scaricare Moodle, la prima è direttamente dal sito moodle.org, la seconda prelevando il codice dalla repository GIT

Download del pacchetto Moodle dal sito moodle.org

Posizionati nella cartella destinata a Moodle

# cd /var/www/html/miosito

Scarica in questa cartella, dal sito download.moodle.org, l'ultima versione "stabile" (cioè il formato che periodicamente viene aggiornato con la correzione di eventuali bug) in formato ".zip" (o ".tgz").

La versione attuale è la 3.9.2.

Se hai scaricato il file ".zip" utilizza il comando "unzip"

# unzip moodle-latest-39.zip

Mentre se hai scaricato il file ".tgz" utilizza il comando "tar"

tar zxvf moodle-latest-39.tgz

In entrambi i casi verrà creata una cartella "moodle" con dentro tutti i suoi files: "/var/www/html/miosito/moodle"

Tuttavia noi vogliamo che Moodle sia sotto la directory "/var/www/html/miosito" per cui spostiamo tutto il contenuto di "/var/www/html/miosito/moodle" nella nostra parent directory

# cp -f -R /var/www/html/miosito/moodle/* /var/www/html/miosito

Adesso puoi cancellare la cartella "moodle", e il file caricato

# rm -f -R /var/www/html/miosito/moodle
# rm -f /var/www/html/miosito/moodle-latest-39.zip

Codice dal Git Repository

Una seconda via di installazione è quella di scaricare il codice dal repository GIT.

Git deve essere installato sul server. Se non lo fosse, installiamolo: noi stiamo lavorando su un server CentOS per cui utilizziamo "yum"

# yum install git

Ultimata l'installazione posizionati nella cartella dove vuoi installare Moodle

# cd /var/www/html/miosito

Scarichiamo quindi il pacchetto da git

# git clone git://git.moodle.org/moodle.git

Verrà creata la cartella "moodle" con dentro tutti i suoi files: "/var/www/html/miosito/moodle"

Tuttavia noi vogliamo che Moodle sia sotto la directory "/var/www/html/miosito" per cui spostiamo tutto il contenuto di "/var/www/html/miosito/moodle" nella nostra parent directory

# cp -f -R /var/www/html/miosito/moodle/* /var/www/html/miosito

Adesso puoi cancellare la cartella "moodle"

# rm -f -R /var/www/html/miosito/moodle

Permessi di file e cartelle

Per motivi di sicurezza è importante impostare correttamente i permessi a file e cartelle caricate sullo spazio web

  • le cartelle devono avere permessi 755
  • i file 644 devono avere permessi 644

Creazione cartella moodledata

Moddle necessita di una carella, il cui nome deve essere "moodledata" dove salvare i file uploadati dagli utenti di moodle, dove salvare i file di log, la cache, i dati delle sessioni...

Per motivi di sicurezza questa cartella NON deve essere nello spazio pubblico raggiungibile da browser web.

Noi creiamo una cartella sotto "/var/www"

# mkdir /var/www/moodledata 

La cartella "moodledata" deve avere permessi "777" cioè tutti devono avere il permesso di "scrittura" essendo una cartella nella quale finiranno file di log, di cache e di sessione di moodle ma anche file upldati dagli utenti.

# chmod -R 777 /var/www/moodledata

Inoltre assegnamo questa cartella ad Apache

# chown -R apache.apache /var/www/moodledata

Creazione o utilizzo del database MySQL

Per funzionare, Moodle necessita di un database server come Mysql o MariaDB, noi abbiamo installato MariaDB. Esula da questa lezione l'installazione di un database server.

Vediamo invece come creare un database, in MySQL o MariaDB, da linea di comando.

Accediamo a mysql come utente root (ti verrà chiesta la password)

# mysql -u root -p

Creiamo quindi un database chiamato, ad esempio, "mymoodle"

mysql> create database mymoodle CHARSET 'utf8mb4';

Creiamo un utente che possa accedere a Moodle, che abbiamo come username, ad esempio "moodleuser" e come password "moodlepass"

mysql > GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON mymoodle.* TO moodleuser@localhost IDENTIFIED BY 'moodlepass'; 

Una rinfrescata ai privilegi

mysql > flush privileges;

ed usciamo da mysql

mysql > quit;

Prendi nota del nome del db, della username e della password: serviranno tra poco.

Configurazione di Moodle

Adesso che tutti i file e cartelle sono presenti sullo spazio web, e i permessi sono correttamente assegnati, dobbiamo procedere con la configurazione di Moodle.

Lanciamo lo script di configurazione automatico di Moodle, aprendo la url di Moodle che nel nostro esempio è "www.miosito.it", oppure, in alternativa, da terminale lanciamo l'install così

/usr/bin/php /var/www/html/miosito/admin/cli/install.php

Noi seguiamo questa seconda via.

Se invece vuoi utilizzare l'installazione grafica da browser web ti rimando a questo articolo, in cui abbiamo illustrato l'installazione di Moodle su un hosting, anzichè su un server: in hosting non abbiamo accesso al server e alla riga di comando, per cui abbiamo effettuato l'installazione da browser. L'unica differenza tra le due installazione è che in quell'esempio abbiamo creato una cartella "moodledata" sotto lo spazio pubblico del sito, e per fare questo abbiamo utilizzato un trick... che non serve se state facendo l'installazione su un server.

Procediamo quindi con l'installazione da linea di comando. In caso di problemi l'installazione si bloccherà e verrà evidenziato l'errrore.

  1. Viene richiesta la lingua di installazione: digito "it" per l'italiano
  2. Viene chiesto di confermare il valore da assegnare ai permessi 777 della cartella "moodledata"
  3. Viene chiesto di scegliere un database driver: digito "mariadb"
  4. Viene chiesto l'host database: il nostro database è installato sulla stesso server per cui digito "localhost"
  5. Viene chiesto il nome del database: digito "mymoodle"
  6. Viene chiesto di indicare un prefisso per le tabelle del database: lascio il valore di dafault "mdl_"
  7. Viene chiesto di indicare la porta del database: lascio il valore di default
  8. Viene chiesto di indicare lo unix socket: lascio il valore di default
  9. Viene chiesto di indicare il nome utente del database: digito "moodleuser"
  10. Viene chiesto di indicare la password dell'utente: digito "moodlepass"
  11. Viene chiesto di indicare il nome del sito: digito "WebArea Lab"
  12. Viene chiesto di indicare un nome abbreviato del sito: digito "WA Lab"
  13. Viene chiesto il nome utente dell'amministratore di Moodle: lascio il valore di defualt "admin"
  14. Viene chiesto di scegliere una password per questo amministratore: digito "123@#ABCefgl"
  15. Viene chiesto di indicare l'indirizzo email di questo amministratore: digito "miosito@gmail.com"
  16. Viene chiesto di indicare una chiave per l'aggiornamento: lascio il valore di default
  17. Viene chiesto se hai letto le condizioni di utilizzo del servizio: digito "s"
  18. Lo script verifica che il server abbia i requisiti minimi per l'installazione di Moodle ed in particolare verifica che tutti i moduli PHP necessari siamo presenti. Nel caso in cui non fossero installati o abilitati, verrai avvisato, e dovrai prima procedere con la loro abilitazione / installazione
  19. Lo script procede con la creazione delle tabelle del database, sono oltre 400 per cui il processo durerà qualche istante.

L'installazione è così conclusa!

L'installer ha creato un file "config.php", nella root della cartella di moodle, che contiene i dati inseriti negli step precedenti

A questo punto non resta altro che accedere al sito, dalla url "www.miosito.it" e loggarci con le credenziali da amministratore !

Abbiamo così concluso il processo di installazione di Moodle in un server.

Impostazione di un crontab

Moodle deve eseguire in autonomia, e periodicamente, alcune attività.

Scheduliamo quindi un cron che ogni 5 minuti (o anche ogni minuto) lanci il file presente nella path "/var/www/html/miosito/admin/cli/cron.php".

Per fare questo utilizziamo il comando "crontab"

# crontab -e

Non appena si è aperta la lista dei cron (se è il primo sarà vuota), clicca sulla "i" della tastiera, ed in questo modo potrai aggiungere un nuova riga

*/5 * * * * /usr/bin/php /var/www/html/miosito/admin/cli/cron.php >/dev/null

Aggiunta la riga, salva ed esci cliccando sul pulsante "Esc" della tastiera, e poi digitando ":wq"

Così facendo abbiamo schedulato questa attività.

Nei prossimi articoli ci occuperemo di personalizzazione e funzionalità di Moodle.

Stay tuned!

Potrebbe interessarti

 
pay per script

Hai bisogno di uno script PHP personalizzato, di una particolare configurazione su Linux, di una gestione dei tuoi server Linux, o di una consulenza per il tuo progetto?

 
 
 
x

ATTENZIONE