venerdì 12 settembre 2014

Installare Moodle su host Aruba

Dopo il mio precedente post su come installare ownCloud sempre su hosting Aruba, questa è la volta del più noto Learning Management System open source: Moodle.

Innanzitutto voglio ringraziare la community italiana di Moodle, con l'aiuto della quale sono venuto a capo sia dell'installazione del LMS che della risoluzione di un fastidioso problema post installazione del quale vi dirò dopo. Questo post dunque è un sunto riorganizzato delle informazioni reperite sulla community più qualche mio suggerimento.

Ma andiamo al dunque.

Il prerequisito fondamentale è -oltre ovviamente a possedere un hosting Linux su Aruba- aver acquistato il servizio aggiuntivo database MySQL che al costo di €7/anno più IVA offre 5 database e 1GB di spazio complessivo su disco.

Upload di Moodle sull'host

Prima di tutto, naturalmente, è necessario scaricare l'archivio zip dell'applicativo Moodle dal sito web ufficiale, la versione attuale è la 2.7.2. Per caricarla sul nostro host useremo ftp, ma come molti sanno questo servizio non consente di caricare e al contempo decomprimere un archivio sul server. L'alternativa alla decompressione sul nostro PC e successivo upload in ftp -che durerebbe ore- è quello di usare un tool php per scompattare l'archivio zip di Moodle direttamente sull'host una volta caricato in ftp.

Per fare ciò useremo il tool PclZip, seguendo la guida di minidesign, e che useremo in questo modo:
  1. scarichiamo PclZip come archivio zip da questo link e scompattiamolo sul nostro computer, otterremo una cartella denominata 'minidesign-pclzip' contenente alcuni file,
  2. carichiamo in ftp -io uso come client l'ottimo Filezilla- questa cartella nella directory radice del nostro host,
  3. sempre in ftp carichiamo l'archivio zippato di Moodle direttamente nella stessa cartella 'minidesign-pclzip',
  4. ora non resta che lanciare lo script puntando con il browser al file index.htm del tool, ad esempio http://www.miosito.it/minidesign-pclzip/index.htm e inserire nella casella visibile nella pagina il nome dell'archivio zippato di Moodle ovvero 'moodle-2.7.2.zip' e cliccando su 'Unzip'.
  5. il processo di scompattamento partirà sul vostro host, ma armatevi di santa pazienza e abbiate fede, al termine comparirà una schermata col messaggio "Operazione eseguita",
  6. a questo punto troverete nella radice dell'host la vostra bella cartella 'moodle' con tutti i file del LMS, pronti per essere configurati e installati.

Configurazione dei servizi php

Per configurare i servizi PHP specifici per Moodle bisogna loggarsi nel pannello di amministrazione di Aruba, selezionare 'Hosting linux' e poi 'Servizi hosting' e nella finestra che si aprirà selezionare 'Personalizzazione del file PHP.INI'. A questo punto potremo scegliere la configurazione 'Moodle' tra quelle proposte, cliccheremo 'OK' e poi 'Chiudi'.

Modifica del file di configurazione di Moodle

Ora modificheremo il file 'adminlib.php' portandoci nella cartella sull'host '\moodle\lib' con Filezilla, cliccando col tasto destro sul file e scegliendo dal menu contestuale 'Visualizza/Modifica'. Inserire dopo la stringa

$siteroot = str_replace('\\', '/', strrev($CFG->dirroot.'/')); // win32 backslash workaround

la seguente:

$siteroot = $CFG->dirroot.'/';


A questo punto proteggiamo da eventuali modifiche e accessi web i file impostando i permessi 755 alla cartella moodle e alle sue sottocartelle. Utilizzando Filezilla fare clic destro sulla cartella 'moodle' scegliendo la voce 'Permessi file'  e impostando il valore numerico 755, facendo attenzione a selezionare la casella 'Includi sottocartelle' e premendo OK. Anche in questo caso, armatevi di santa pazienza perché l'operazione è molto lunga.

Configurazione del database

Entrate nel servizio di gestione del servizio MySQL di Aruba dal pannello di controllo scegliendo 'Database' e poi 'MySql' e successivamente 'Gestisci'. Si aprirà una finestra nella quale dovrete loggarvi con le credenziali di admin del database MySQL che non sono le stesse del pannello di controllo di Aruba. Se le avete perse, potete recuperarle cliccando nel pannello di controllo sul link in alto a destra 'Area clienti', selezionando dalla colonna sinistra 'Servizi aggiuntivi' poi la voce 'Database MySQL' e cloccando su 'Ho perso i dati' seguite la procedura di recupero.

Una volta loggati nel pannello di amministrazione del database MySQL bisogna impostare la 'Collation della connessione di MySQL' a 'utf8_bin'.

Installazione

Ora bisognerà creare con Filezilla una cartella denominata 'moodledata' nella radice dell'host, e potremo finalmente avviare la procedura di installazione di Moodle, puntando con il browser alla relativa cartella, ad esempio http://www.miosito.it/moodle e seguendo le istruzioni passo passo.

Se la configurazione del server è andata a buon fine, dopo il check la procedura proseguirà, e a un certo punto vi verranno chiesti in una schermata:

  1. la cartella di installazione di Moodle ovvero 'moodle'
  2. la cartella dati 'moodledata' che avete precedentemente creato
  3. l'host del database MySQL che è in genere un indirizzo IP visualizzabile nel pannello di amministrazione del database
  4. il nome del database, ovvero uno dei 5 messi a disposizione nel servizio MySQL di Aruba
  5. il nome utente amministratore
  6. la password amministratore
Il resto della procedura avviene passo passo, e non dovrebbe comportare problemi, terminerà con la configurazione dell'utente admin di Moodle.

Un possibile problema

Al termine della procedura, potrebbe verificarsi un problema di cattiva visualizzazione del template del tema di Moodle, come nello screenshot qui sotto.


Don't panic, sempre nella community Moodle italiana ho trovato la soluzione. Nel pannello di amministrazione di Moodle, recarsi nel percorso Amministrazione del sito -> Server -> HTTP -> togliere il flag all'opzione 'Utilizza gli slash arguments' e l'aspetto di Moodle sarà perfetto!

Bene, credo di aver detto tutto. Ringrazio ancora la community italiana di Moodle alla quale raccomando caldamente di iscrivervi e... buon e-learning con Moodle!