domenica 25 gennaio 2009

Istallazione di Moodle su Ubuntu Server 8.04

Installare il server

La prima fase del lavoro consiste nell'installazione del server. Si tratta di un lavoro in discesa senza troppi impicci. E' necessario scaricare dal sito il software appropriato che di norma è una immagine ISO. Bisognerà quindi masterizzare il cd e inserirlo nell'apposito lettore del computer prescelto per l'attività di server (ricordare di impostare l'esatta sequenza di boot); a questo punto si riavvierà la macchina e in circa venti minuti/mezz'ora una procedura guidata vi condurrà all'installazione del server. Da notare che al termine dell'installazione vi sarà chiesto se ritenete opportuno configurare il server con servizi particolari. Considerato che l'uso sarà di far girare Moodle bisognerà selezionare LAMP e verranno così installati i pacchetto MySQL, Apache e php. Al termine il cd verrà automaticamente espulso ed il computer riavviato. Potrete procedere a loggarvi con userID e password salvate durante la procedura di installazione. Per chi non ha molta esperienza di sistemi operativi a riga di comando ma è invece abituato alle interfacce grafiche di windows interagire col server sembrerà difficoltoso ma è solo una impressione; ci aspetta la configurazione della rete.

Configurazione di rete

Un Server web deve avere un indirizzo IP statico mentre, come condizione predefinita, dopo l'installazione il nostro server avrà il servizio DHCP client attivato; ciò significa che riceverà all'avvio un indirizzo dal vostro server DHCP (ragionevolmente il vostro router oppure un qualsiasi PC della vostra rete che più o meno inconsapevolmente avete impostato come server DHCP). Per assicurarvi di ciò cominciate a digitare, dopo esservi loggati, il comando:

ifconfig

la risposta sarà la configurazione della scheda di rete della vostra macchina dalla quale capirete quale indirizzo è stato assegnato al computer. Ora aprite il file "/etc/network/interface" con un qualsiasi editor di testo digitando per esempio:

sudo nano /etc/network/interfaces

il file conterrà questo testo:

auto eth0

iface eth0 inet dhcp

il che significa, come dicevamo, che il computer è configurato per ricevere l'indirizzo IP dal server DHCP. Ora modifichiamo il testo del file aperto (/etc/network/interface) così:

auto eth0

iface eth0 inet static

address 192.168.1.250

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.1.255

gateway 192.168.1.1

Questo imposterà l'indirizzo IP a 192.168.1.250 (statico). Sarà anche necessario disinstallare il software che permetteva al nostro computer di utilizzare il servizio DHCP come client; digitiamo quindi:

sudo apt-get remove dhcp-client

Da ultimo è necessario impostare l'indirizzo del server DNS che, all'interno della rete, risolve gli indirizzi simbolici in IP e viceversa. Apriamo con il solito editor di testo il file /etc/resolv.conf per esempio con questo comando:

sudo nano /etc/resolv.conf

ed in corrispondenza della direttiva "nameserver" indichiamo l'indirizzo IP del server DNS della nostra rete; per esempio:

nameserver 192.168.0.254

Salviamo e usciamo dall'editor, quindi per far funzionare tutto salviamo le impostazioni con il comando:

sudo /etc/init.d/networking restart

A questo punto possiamo verificare che il server web, apache compreso, funzioni correttamente; apriamo il browser web in un pc della rete e digitiamo sulla barra degli indirizzi l'indirizzo IP che abbiamo impostato per il nostro webServer (nel nostro caso 192.168.0.250) e stiamo a vedere cosa succede... Dovrebbe comparire la scritta "It Works!" su una pagina bianca. Apache ed il nostro web server funzionano!

Prerequisiti

Nel server, affinchè giri Moodle, è naturalmente necessario che sia installato MySQL, Apache e php e, all'atto dell'installazione del S.O. infatti abbiamo scelto l'opzione di installazione LAMP (Linux, Apache, MySQL, Php). Come condizione predefinita però certe estensioni di php non vengono installate e dovremo effettuare noi l'installazione usando la repository di linux. Da shell i comandi saranno:

sudo apt-get install php5-gd

sudo apt-get install php5-curl

sudo apt-get install php5-xmlrpc

sudo apt-get install tetex-base tetex-bin tetex-extra imagemagick

In particolare l'ultima installazione ci permetterà di far funzionare i filtri LaTex che trasformano codice specifico in simboli matematici non scrivibili con la tastiera o con semplice codice HTML (frazioni limiti integrali radici quadrate etc.)

Scaricare e scompattare Moodle

Dalla repository di linux (apt) è possibile scaricare moodle; il comando sarebbe semplicemente:

apt-get install moodle

il sistema pesca automaticamente dalla repository di linux per cercare la versione più aggoirnata; purtroppo però tale repository non è stata aggiornata di recente e la versione scaricata risulta essere la 1.8. Molto meglio quindi rivolgersi direttamente, con il comando wget, al sito di moodle e cercare l'ultima versione stabile. Mettiamoci quindi nella directory /var/www con il comando:

cd /var/www

dove di norma risiedono le cartelle che contengono i file che vengono utilizzati dal web server per la pubblicazione sul www, e poi digitiamo:

sudo wget http://download.moodle.org/stable19/moodle-latest-19.tgz

Verrà scaricato il file compresso "moodle-latest-19.tgz proprio nella cartella /var/www. Per controllare l'integrità del pacchetto digitiamo ora:

sudo tar -zvtf moodle-latest-19.tgz

se non verrà notificato nulla di particolare vorrà dire che il pacchetto è integro mentre se ci sarà qualche problema sarà necessario rieffettuare il download. A questo punto scompattiamo il pacchetto con il comando

sudo tar -zxvf moodle-latest-19.tgz

comparirà nella cartella /var/www una nuova cartella dal nome "moodle" che conterrà tutti i file della applicazione. Se lo desideriamo rimuoviamo il file compresso che ora non serve più (manteniamo sempre le cose in ordine) con il comando:

rm -Rf moodle-latest-19.tgz

A questo punto abbiamo terminato questa fase dell'installazione; procederemo con la creazione della directory "moodledata" e del database di mysql.

La directory moodledata

La directory moodledata è una directory che l'applicazione usa per il salvataggio del materiale dei vari corsi. Deve essere una cartella con permessi di lettura e scrittura per il generico utente internet (in ubuntu l'utente www-data del gruppo www-data) ma non deve essere accessibile dal web; quindi la inseriremo nella directory /var. Spostiamoci dunque nella dir /var con il comando

cd /var

e creiamo la directory con il comando

sudo mkdir moodledata

cambiamo quindi il proprietario della cartella con il comando

sudo chown -R www-data.www-data /var/moodledata

MySQL

A questo punto abbiamo, a seconda della situazione in cui ci troviamo, due possibilità: eseguire una installazione pulita di moodle eseguire la migrazione di un moodle esistente su un altro server. Infatti tutti i dati di moodle sono inseriti in un database di mysql e per effettuare una installazione pulita basterà creare un nuovo database. In alternativa per effettuare la migrazione di un moodle esistente sarà necessario eseguire il dump del vecchio database ed il restore sul nuovo server. Per ora ci occuperemo della prima possibilità. Entriamo nella console di mysql:

mysql -uroot -p

ci verrà chiesta la password (ricordo che in fase di installazione del sistema ubuntu srv si impostò la password dell'utente root che poteva essere anche vuota anche se non è una operazione consigliata); la digiteremo ed entreremo nella console di mysql (sarà visibile il prompt di mysql). Creiamo il database "moodle", che conterrà tutti i dati dei nostri corsi, con il comando

create database moodle;

(non si dimentichi il punto e virgola) potremo vedere il database creato con il comando

show databases;

a questo punto creiamo un utente ad hoc per il database moodle e diamogli i permessi per usare tale database con il comando;

GRANT ALL PRIVILEGES ON moodle.* TO 'nome_utente'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

naturalmente sostituirete i valori adeguati ai segnaposto "nome-utente" e "password" (i singoli apici nel comando vanno mantenuti). Da notare che moodle richiede per un funzionamento corretto uno specifico set di caratteri e una specifica collate per il database quindi sarà necessario impostare questa specifica configurazione con i comandi:

ALTER DATABASE moodle DEFAULT CHARACTER SET = utf8; ALTER DATABASE DEFAULT COLLATE =utf8_unicode_ci;

per ogni comando, mysql ci darà un riscontro del buon esito. Usciamo dalla console di mysql digitando il comando

exit

Siamo pronti per l'installazione vera e propria.

Procedura di installazione

Finalmente, dopo tutti i preparativi del caso siamo giunti all'istallazione sul server vera e propria... dopo aver avviato il server accediamo ad esso con il suo nome o con il suo indirizzo IP dal browser di un qualsiasi PC della rete (per esempio si può scrivere sulla barra degli indirizzi di "Firefox" o di "Internet Explorer":

http://192.168.0.250/moodle

inizierà così la procedura di installazione e verrà visualizzata sul browser la prima pagina di tale procedura con il logo di "moodle".

Cron

Cron è una applicazione del S.O. Linux (credo tutte le versioni) che si può considerare simile all'applicazione "operazioni pianificate" di Windows. E' possibile registrare una serie di comandi e stabilire quando il sistema li eseguirà. In moodle esiste un file (si chiama cron.php) che contiene una serie di comandi che bisognerebbe eseguire periodocamente (ogni 5 o 10 minuti) e, se non vengono eseguiti, sulla pagina delle notifiche di moodle segnala all'amministratore di eseguirli. Sarà quindi bene pianificare l'esecuzione di questi comandi con cron se non si vorrà farlo manualmente! Da shell digitiamo:

sudo crontab -e

Si aprirà un editor di testo con una pagina ancora vuota. Digitiamo:

*/5 * * * * wget -q -O /dev/null http://localhost/moodle/admin/cron.php

(tutto su una riga). Salviamo dove propone l'editor di testo. Verrà creato nella cartella /var/spool/cron/crontabs un file con il nome dell'utente che ha inserito i dati che contiene i comandi da svolgere secondo quanto indicato. per verificare in ogni momento (ma non per modificare) il contenuto di questo file basta digitare:

sudo crontab -l

A questo punto sarà possibile cominciare ad usare Moodle da qualsiasi PC connesso al server.