Moodle: installazione in un ambiente di hosting condiviso
Moodle è una piattaforma per la gestione di attività di e-learning, scritta in linguaggio PHP, che consente di creare un’aula virtuale dove poter pubblicare materiali didattici, corsi, attività di test, calendario attività, comunicare con gli utenti (allievi), ... ed è una tra le soluzioni maggiormente adottate dalle università e dagli enti formativi.
A titolo di esempio puoi accedere alla piattaforma usata dall'Università degli studi di Torino
Oggi vediamo come installare Moodle, in un comune spazio web. Se invece vuoi installarlo su un server dedicato, ti invito a leggere questo articolo.
Lo spazio web
Abbiamo bisogno, innanzitutto, di un dominio ed uno spazio web dove collocare la piattaforma.
Lo spazio web può essere presente su un server dedicato, o uno server cloud, in cui abbiamo accesso come root, o utenti privilegiati, al server stesso, oppure uno spazio in hosting condiviso cioè il classico spazio web da "pochi" euro l'anno che forniscono tutti i provider come ad esempio Aruba.
La fondamentale differenza tra le due soluzione, a parte la performance, ovviamente migliore su una macchina dedicata, consiste nella possibiltà di avere il pieno controllo o meno della macchina che ospita il sito web.
Uno dei vincoli di Moodle, ad esempio, è la creazione una cartella dedicata a file specifichi di moodle (file log, file di cache, file uploadati...) che non deve essere accessibile al pubblico ma devono essere collocati in una cartella privata. Un server dedicato, ovviamente, ti consente questa possibilità, mentre gran parte degli spazi web condivisi in hosting ti consente solo di accedere via ftp alla cartella contenente i file pubblici.
Anche l'installazione è differente nei due casi.
Moodle richiede PHP 7.1, o superiore, e MySQL come database, per cui, quando acquisti uno spazio web, verifica che queste specifiche siano presenti.
In questo articolo ci occupiamo dell'installazione in un ambiente hosting e di come superare questo problema della cartella "privata".
Download di Moodle
Fatta questa premessa iniziamo a scaricare Moodle dal sito web download.moodle.org : da questa pagina scarichiamo l'ultima versione "stabile" (cioè il formato che periodicamente viene aggiornato con la correzione di eventuali bug) in formato ".zip". La versione attuale è la 3.9.2.
Effettuato il download, decompattiamo il file ".zip" in una cartella, chiamata ad esempio "moodle". Il processo richiederà qualche istante di attesa.
Dominio di Moodle
Possiamo installare Moodle in due modi differenti nel nostro spazio web
- Il nostro sito può essere totalmente dedicato a Moodle, per cui aprendo il dominio, ad esempio "www.miosito.it", apro subito Moodle: in questo caso installeremo Moodle nella root dello spazio web
- oppure Moodle è solo una sezione del nostro sito, cioè il nostro sito ha anche altre pagine, come ad esempio una home page, una pagina di contatto, una di presentazione ,le pagine servizi ... ed in questo caso la sezione formativa verrà aperta con una url del tipo, ad esempio, "www.miosito.it/elearning": in questo caso creeremo una cartella interna alla root dello spazio web, chiamata ad esempio "elearning" ed in questa cartella installeremo Moodle
Nel nostro esempio utilizziamo questa seconda soluzione per cui la url che utilizzeremo per vedere in azione Moodle sarà "www.miosito.it/elearning"
Spostamento di Moodle sullo spazio web: l'utilizzo di un client FTP (Filezilla)
A questo punto dobbiamo spostare tutto il contenuto della cartella "moodle" nello spazio web.
A tale scopo utilizziamo un client FTP, cioè un programma destinato all'upoad e download dei files sul nostro spazio web. Il più noto, e gratuito, client FTP è Filezilla, scaricabile a questa url: filezilla-project.org.
Per chi non avesse mai utilizzato un client FTP spieghiamo molto rapidamente come utilizzarlo. Se hai basi sistemistiche o hai già realizzati sii web saprai certamente come si usa per cui puoi leggerlo rapidamente, ma leggilo perchè ci sono alcune osservazioni importanti.
Dopo averlo installato, ed aperto, dobbiamo aggiungere la configurazione per accedere al nostro spazio web.
Clicchiamo su "FIle" > "Gestione siti" > "Nuovo sito" e diamo un nome alla nostra configurazione, ad esempio "moodle website".
TI verranno richiesti il nome HOST cioè la url per l'accesso FTP, il nome utente e la password: tutte queste informazioni sono fornite dal provider dove hai acquistato lo spazio web.
Salva la configurazione cliccando su OK. A questo punto la configurazione è pronta e disponibile all'uso cliccando sul menu a tendina posto sotto la voce "File": clicchiamo sulla voce "moodle website", e così facendo ci collegheremo allo spazio web del nostro sito.
La schermata presenta un lato sinistro, relativo al nostro pc, e uno destro relativo allo spazio web del provider.
Sul pannello sinistro di FileZilla accediamo alla cartella contenente i file di moodle (dentro la cartella "moodle").
Sul pannello destro, vedrai la "root" (la radice) dello spazio web che il provider ti ha messo a disposizione.
- Se hai acquistato uno spazio web in hosting condiviso, è molto probabile che tu veda subito, e solo, l'area pubblica, cioè tutti i file che caricherai in questo spazio saranno raggiungibili tramite browser web.
- Alcuni servizi di hosting però distinguono l'area pubblica, con una cartella normalmente chiamata "public_html", dalla parte non pubblica: in questo caso, con FileZilla, devi accedere a questa cartella "public_html" ed è in questa cartella che caricherai Moodle.
Quindi, posizionati nell'area pubblica e se, come nel nostro esempio, hai deciso di installare Moodle in una cartella interna al tuo sito, allora crea con FIlezilla questa cartella cliccando con il pulsante destro del mouse e selezionado "crea cartella": chiama questa cartella, ad esempio ,"elearning", ed accedici perchè qui caricherai i file di Moodle.
Adesso devi spostare tutti i file contenuti nella cartella "moodle" (non la cartella!) presenti sul tuo PC, verso lo spazio web dedicato a Moodle: per farlo devi trascinare tutti i file dal pannello sinistro a quello destro. L'operazione durerà qualche minuto (dipende dalla tua velocità connessione).
Permessi di file e cartelle
Ultimato lo spostamento di Moodle, per motivi di sicurezza è importante impostare correttamente i permessi a file e cartelle caricati sullo spazio web
- le cartelle devono avere permessi 755
- i file 644 devono avere permessi 644
Per farlo, con Filezilla, clicca sull'elemento con il pulsante destro del mouse e poi clicca sulla voce "permessi file" indichando 755 per le cartelle e 644 per i files.
Creazione o utilizzo del database MySQL
Per funzionare, Moodle necessita di un database Mysql, che ti verrà fornito assieme allo spazio web dal tuo provider.
Il provider dovrà fornirti quattro informazioni relativi al database che ti è stato assegnato:
- l'ip del server (o l'HOST) dove è localizzato il database
- il nome del database
- la username
- la password
Ad esempio, Aruba, dopo aver acquistato il pacchetto hosting, ti invia una mail con dentro queste informazioni, e, tramite un apposito pannello "mysql.aruba.it" puoi accedere al database, anzi ai database visto che il pacchetto normalmente prevede l'utilizzo di 5 database. Possiamo scegliere di utilizzare uno qualunque di essi per Moodle, ad esempio quello chiamato "Sql669292_1".
Alcuni hosting, invece, ti danno la possibilità di creare tu stesso un database, per cui sarai tu ad assegnare un nome al database, una user ed una password. L'ip (HOST) invece deve fornitelo il provider.
Chiaramente ogni provider ha pannelli differenti ma più o meno la logica è la stessa.
Creazione cartella privata: moodledata
Moddle necessita, come detto in fase di introduzione, di una carella 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.
Per cui, se il tuo provider separa la "public_html" dalle cartelle private, puoi creare tra queste ultime una cartella destinata ai file "privati" di Moodle con il nome "moodledata".
Se invece non hai questa possibilità creala nell'area pubblica, con un accorgimento: l'accesso a questa cartella va negato a chiunque tenti di accedere via browser web. A questo scopo, all'interno della cartella, crea un file chiamato ".htaccess" con dentro semplicemente questo codice
order deny,allow
deny from all
Posiziona questo file nella cartella "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.
Configurazione di Moodle
Adesso che tutti i file e cartelle sono presenti sullo spazio web, e i permessi sono correttamente assegnati, dobbiamo lanciare lo script di configurazione automatico di Moodle, aprendo la url di Moodle che nel nostro esempio è "www.miosito.it/elearning".
Il processo di installazione seguirà alcuni step.
Ti verrà inizialmente richiesta la lingua di installazione: selezioniamo l'italiano
Nella seconda schermata ti verrà presentata la "Conferma percorsi", dove ti verrà chiesto
- di confermare la url di installazione di Moodle: "https://www.miosito.it/elearning"
- di confermare il path (il percorso) assoluto sul server dove sono localizzati i file di Moodle: "/web/htdocs/www.miosito.it/elearning"
- di indicare il path assoluto della cartella privata "moodledata": digitiamo "/web/htdocs/www.miosito.it/elearning/moodledata"
Clicca su "successivo": se hai creato la cartella "moodledata" nello spazio pubblico, il sistema ti bloccherà con un avviso "La posizione della Cartella dati non è sicura" e non potrai procedere con l'intallazione. Moodle infatti necessita che questa cartella non sia nella cartella pubblica, ma noi non abbiamo avuto alternative!
Per superare questo ostacolo, apri, con un editor, il file "lib/adminlib.php" ed individua questa riga
$siteroot = str_replace('\\', '/', strrev($CFG->dirroot.'/'));
e, al di sotto di essa, digita la seguente istruzione:
$siteroot = $CFG->dirroot.'/';
Salva la modifica.
Poi, apri il file "config-dist.php", presente nella root di moodle, ed individua questa riga
$CFG->wwwroot = 'http://example.com/moodle';
Commentala, e, al di sotto di essa, scrivi la url della tua installazione Moodle
//$CFG->wwwroot = 'http://example.com/moodle';
$CFG->wwwroot = 'https://www.miosito.it/elearning';
Indivua anche questa riga
$CFG->dataroot = '/home/example/moodledata';
Commentala e, al di sotto di essa, indica la path assoluta alla cartella "moodledata" creata nello spazio pubblico.
// $CFG->dataroot = '/home/example/moodledata';
$CFG->dataroot = '/web/htdocs/www.miosito.it/home/elearning/moodledata';
Dopo aver operato queste modifiche rilancia lo script di installazione e vedrai che potrai procedere con lo step successivo: la configurazione del database da utilizzare.
Ti verrà chiesto quale database utilizzare tra una lista di possibilità tra cui MySQL, MariaDB, ...: selezioniamo MySQL.
Verranno chiesti i dati del database da utilizzare per Moodle tra cui i vari HOST, il nome del database, la username, la password (visti precedentemente), ed un eventuale prefisso da dare ai nomi di tutte le tabella che lo script andrà a creare automaticamente.
Nello step successivo confermiamo di avere letto le condizioni di utilizzo del servizio.
Nella schermata successiva, 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. Se alcuni moduli non fossero abilitati... devi sperare che il tuo provider metta a disposizione un pannello da cui abilitarli.
E' richiesto anche un certificato SSL per l'accesso al sito tramite url https, che oramai tutti i pacchetti hosting hanno in dotazione gratuitamente.
Proseguendo, lo script andrà a creare le tabelle del database... sono oltre 400 per cui il processo durerà qualche minuto. In questo lasso di tempo non fare nulla ed attendi il completamento.
Se dopo qualche minuto viene visualizzata una pagina di errore non preoccupatevi, significa che il processo sta durando troppo tempo rispetto al timeout previsto dalla configurazione di php. Tuttavia l'installazione del database sta proseguendo. Controllato tramite PhpMyAdmin, o strumenti simili, lo stato di avanzamento dell'installazione. Quando vedrete il numero di tabelle superare le 400, riaprite la pagina. Quando l'installazione è ultimata, verrà visualizzata la schermata successiva.
La schermata successiva ti chiede di creare un utente amministratore di Moodle, con un password "robusta". Tra i vari campi ti verrà chiesto un nome utente, il nome, il cognome, l'indirizzo email dell'amministratore e la visibilità di questo indirizzo mail (visibile o non visibile), la città, una presentazione opzionale da visualizzare sul sito, ed altri dati tra cui eventuali account social utilizzati.
Clicca su "aggiornamento profilo"
Nella schermata successiva indichiamo il nome del sito, ad esempio "WebArea LAB" e un nome abbreviato alternativo, ad esempio "WA LAB", ed un testo da visualizzare in home page (che dopo potremo modificare).
Impostiamo anche il fuso orario del sito "Europa/Rome"
L'ultimo punto, ma molto importante, è la creazione degli account degli utenti (allievi e docenti) del sito.
Lasciamo l'impostazione "disabilitata" solo l'amministratore potrà a creare gli account, e solo i docenti potranno creare gli account degli allievi.
Abilitando l'opzione diamo la possibilità agli utenti di crearsi autonomamente un account tramite una procedura che prevede la ricezione di una mail contenente un link di conferma per verificare l'autenticità dell'utente e del suo indirizzo email.
Salviamo queste impostazioni, e ci verrà chiesto di registrare la nostra installazione sul sito moodle.net, ma possiamo saltare questo passaggio. Nel caso di siti non demo, ma in produzione, è consigliabile la registrazione.
Ci troviamo all'interno del sito loggati come utenti amministratori. Sul menu di sinistra troviamo alcuni pulsanti quali "Dashboard" ed "Home del sito" che ci consentono di muoverci all'interno della piattaforma.
Abbiamo così concluso il processo di installazione di Moodle all'interno uno spazio web in hosting.
Impostazione di un crontab
Moodle deve eseguire in autonomia, e periodicamente ad intervalli brevi, alcune attività.
Tramite il pannello messo a disposizione dal tuo provider (dovrebbe essere disponibile!), imposta una attività schedulta, cioè un "cron", possibilmente ogni 5 minuti, che lanci il file "cron.php" presente sotto la cartella "admin/cli".
Installazione automatizzata in hosting
Abbiamo installato Moodle "manualmente", tuttavia alcuni provider, tramite il pannello di controllo del proprio spazio web, consentono di installare il pacchetto con un semplice "click". Verificate quindi tale possibilità presso il vostro provider.
Moodle cloud
Se non volete occuparvi dell'installazione, dell'acquisto di un dominio, della scelta di uno spazio web .... potete appoggiarvi a Moodle Cloud: è una soluzione già pronta all'uso, con pacchetti a pagamento che variano in base alle esigenze d'uso.
Nei prossimi articoli ci occuperemo della personalizzazione e delle funzionalità di Moodle.
Stay tuned!