# Installazione di Moodle

> Questa guida spiega come installare Moodle per la prima volta. Approfondisce alcuni passaggi necessari per descrivere le piccole differenze che esistono nell'impostazione dei vari web servers, e, per questo, il documento può sembrare lungo e complicato. Ma non vi impressionate. Di solito, per installare Moodle, bastano pochi minuti!

> Esaminate il documento con pazienza ed attenzione - risparmierete tempo più tardi.

> Sezioni del documento:

> 1. Requisiti
> 2. Download
> 3. Struttura del Sito
> 4. Creazione della cartella dati
> 5. Creazione del database
> 6. Controllo delle impostazioni del web server
> 7. Modifica del file config.php
> 8. Partenza dalla pagina "admin"
> 9. Impostazione di cron
> 10. Creazione di un nuovo corso

### 1. Requisiti

> Moodle è principalmente sviluppato in Linux usando Apache, MySQL e PHP (a volte chiamata piattaforma LAMP), ma è anche regolarmente testato con PostgreSQL e sui sistemi operativi Windows XP, Mac OS X e Netware 6.

> I requisiti per Moodle sono i seguenti:

> 1. Software del Web server. Molti usano Apache, ma Moodle dovrebbe girare bene in ogni web server che supporta PHP, come IIS sulle piattaforme Windows.
> 2. Linguaggio PHP (versione 4.1.0 o successive), con le seguenti impostazioni:
>    - GD library settato ON, col supporto per i formati JPG e PNG
>    - zlib library settato ON (se si vuole utilizzare il backup/restore su Windows)
>    - Sessions support settato ON
>    - File uploading settato ON
>    - Safe Mode deve essere settato OFF (guarda i forums su moodle.org per i problemi causati da Safe Mode)
> 3. un database server funzionante: MySQL o PostgreSQL sono completamente supportati e raccomandati per l'uso con Moodle (a partire dalla versione 1.1). Altri database saranno completamente supportati nelle future release.

> La maggior parte degli host web hanno suddette impostazioni per default. Se vi siete abbonati a uno dei pochi fornitori che non hanno queste caratteristiche, chiedete loro perché e valutate la possibilità di cambiare provider.

> Se volete far girare Moodle sul vostro stesso computer e tutto questo sembra un pò noioso, allora esaminate la guida: Installazione di Apache, MySQL and PHP. Essa fornisce delle istruzioni passo-passo per installare questi software sulle più diffuse piattaforme.

### 2. Download

> Esistono due modi per ottenere Moodle: come pacchetto in un unico file compresso o tramite CVS. La spiegazione dettagliata si trova alla pagina di downlod: http://moodle.org/download/

> Dopo il download e l'unzip del file, o la ricezione dei files tramite CVS, vi ritroverete una cartella di nome "moodle", contenente in certo numero di files e sottocartelle.

> Potete sia spostare l'intera cartella nella cartella documenti del vostro web server, nel qual caso il sito si troverà all'indirizzo http://yourwebserver.com/moodle, o potete copiare tutto il contenuto della cartella nella suddetta cartella documenti, nel qual caso il sito si troverà a http://yourwebserver.com.

### 3. Struttura del Sito

> Di seguito è riportato un sintetico sommario per orientarsi nel contenuto della cartella Moodle:

> > config.php - l'UNICO file che è necessario modificare per partire
> > version.php - definisce la versione corrente del software di Moodle
> > index.php - la pagina iniziale del sito

> > - admin/ - programmi necessari per l'amministrazione dell'intero server
> > - auth/ - moduli plugin per l'autenticazione degli utenti
> > - course/ - programmi per la visualizzazione e la gestione dei corsi
> > - doc/ - documentazione di help di Moodle (per es. questa pagina)
> > - files/ - programmi per visualizzare e gestire i files caricati
> > - lang/ - tutti i testi nelle varie lingue, una cartella per lingua
> > - lib/ - libreria dei programmi del nucleo centrale di Moodle
> > - login/ - programmi per gestire il login e la creazione degli account
> > - mod/ - tutti i moduli software per la gestione delle attività di un corso in Moodle
> > - pix/ - elementi di grafica generale del sito
> > - theme/ - varie configurazioni per cambiare il "look" del sito
> > - user/ - programmi per la visualizzazione e la gestione degli utenti.

### 4. Creazione della cartella dati

> Moodle richiede un pò di spazio sul vostro hard disk per memorizzare i files caricati, come i documenti dei corsi o le fotografie degli utenti.

> A questo scopo, create una directory da qualche parte. Per ragioni di sicurezza è meglio che tale cartella NON sia accessibile direttamente via web. Il modo più semplice per fare ciò è di posizionarla FUORI della directory web, o altrimenti proteggerla creando un file, all'interno della cartella stessa, chiamato .htaccess, contenente questa riga:

> >     deny from all

> Per essere sicuri che Moodle possa salvare i files caricati, in questa cartella, controllare che il software usato come web server (per es. Apache) abbia i necessari permessi di scrittura nella cartella stessa. Sulle macchine UNIX, questo significa impostare lo "owner" della directory a qualcosa tipo "nobody" oppure "apache". Su molti server, usati anche per altre applicazioni, probabilmente dovrete restringere tutti gli accesi ai files al vostro "group" (per evitare che altri clienti web possano vedere o modificare i vostri files), ma darete un pieno accesso in read/write a chiunque altro (per permettere al web server di accedere ai vostri files). Parlate con l'aministratore del vostro server se avete difficoltà o non siete sicuri nell'effettuare queste impostazioni.

### 5. Creazione del database

> E' necessario creare, nel vostro database system, un database vuoto (per es. "moodle") con un utente speciale (per es. "moodleuser") che ha accesso a quel database (e a quel database solo). Potete usare l'utente "root" se volete, ma questo non è raccomandabile per un sistema in produzione: se un hacker dovesse scoprire la password, l'intero database sarebbe a rischio, piuttosto che uno solo.

> Linee comando di esempio per MySQL:

>        # mysql -u root -p
>        > CREATE DATABASE moodle;
>        > GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*
>                TO moodleuser@localhost IDENTIFIED BY 'yourpassword';
>        > quit
>        # mysqladmin -p reload

> Linee comando di esempio per PostgreSQL:

>        # su - postgres
>        > psql -c "create user moodleuser createdb;" template1
>        > psql -c "create database moodle;" -U moodleuser template1
>        > psql -c "alter user moodleuser nocreatedb;" template1

> (Per MySQL raccomando fortemente l'uso di phpMyAdmin per la gestione del vostro database - potete fare tutto attravesro un'interfaccia web).

> Dalla versione 1.0.8, Moodle supporta anche i prefissi di tabella, per cui potete tranquillamente usare un databese dove sono presenti tabelle di altre applicazioni.

### 6. Controllo delle impostazioni del web server

> Per prima cosa, dovete essere sicuri che il vostro web server sia impostato in modo da usare index.php come pagina di partenza di default (forse in aggiunta a index.html, default.htm e così via).

> In Apache, questo si ottiene utilizzando il parametro DirectoryIndex nel file httpd.conf. Il mio file di solito è:

> >     DirectoryIndex index.php index.html index.htm

> Basta essere sicuri che index.php sia nella lista (e possibilmente verso l'inizio, per una maggiore efficienza).

> Secondo, se usate Apache 2, dovete settare ON la variabile AcceptPathInfo, che permette di passare argomenti agli script come, ad esempio, http://server/file.php/arg1/arg2. Questo è essenziale per permettere i link relativi tra le vostre risorse, ed migliora le performance di velocità di chi usa il vostro sito Moodle. Questa impostazione va fatta aggiungendo questa riga nel file httpd.conf.

> >     AcceptPathInfo on

> Terzo, Moodle ha bisogno, per girare, che certe impostazioni PHP siano attive. Sulla maggior parte dei server, queste sono già le impostazioni di default. Comunque, alcuni server PHP (e alcune delle versioni PHP più recenti) potrebbero avere impostazioni diverse. Queste sono definite nel file di configurazione di PHP (di solito php.ini):

> >     magic_quotes_gpc = 1    (preferito ma non necessario)
> >     magic_quotes_runtime = 0    (necessario)
> >     file_uploads = 1
> >     session.auto_start = 0
> >     session.bug_compat_warn = 0

> Se non avete accesso ai files httpd.conf o php.ini, sul vostro server, oppure Moodle gira su un server con altre applicazioni che richiedono impostazioni differenti, non vi preoccupate, potete sempre "rimpiazzare" tutte le impostazioni default.

> Per fare questo, dovete preparare, nella cartella principale di Moodle, un file di nome .htaccess che contiene le definizioni per le vostre impostazioni. Questo funziona solo sui server Apache e solo quando gli "Overrides" sono ammessi.

> >     DirectoryIndex index.php index.html index.htm

> >     <IfDefine APACHE2>
> >          AcceptPathInfo on
> >     </IfDefine>

> >     php_flag magic_quotes_gpc 1
> >     php_flag magic_quotes_runtime 0
> >     php_flag file_uploads 1
> >     php_flag session.auto_start 0
> >     php_flag session.bug_compat_warn 0

> Potete anche fare cose come "impostare la dimensione massima dei files da caricare":

> >     LimitRequestBody 0
> >     php_value upload_max_filesize 2M
> >     php_value post_max_size 2M

> La cosa più facile da fare è copiare il file campione da lib/htaccess ed editarlo secondo le vostre necessità. All'interno ci sono ulteriori istruzioni. Per esempio, in ambiente Unix:

> >     cp lib/htaccess .htaccess

### 7. Modifica del file config.php

> Adesso potete modificare, con un text editor, il file di configurazione config.php. Questo file è usato da tutti gli altri files di Moodle.

> Per cominciare, fate una copia di config-dist.php e chiamatela config.php. Questo è fatto affinché il vostro config.php non sia mai sovrascritto in caso di futuri aggiornamenti di Moodle.

> Modificate config.php per specificare i dettagli del databese che avete appena definito (incluso il prefisso di tabella - OBBLIGATORIO per PostgreSQL), come pure l'indirizzo del sito, la cartella del file system e la cartella dati. Il file config stesso contiene istruzioni dettagliate ed esempi.

> Fatto questo, il resto dell'installazione è tramite interfaccia web e, in questo documento, assumiamo che il vostro sito sia all'indirizzo http://example.com/moodle

### 8. Partenza dalla pagina "admin"

> La pagina di amministrazione dovrebbe ora essere attiva a: http://example.com/moodle/admin. Se comunque provate ad accedere alla pagina iniziale del vostro sito, sarete lo stesso reindirizzati a tale pagina. La prima volta che si accede alla pagina "admin", sarà mostrato un "condensato" della licenza GPL, con la quale dovete essere d'accordo prima di poter continuare l'installazione.

> (Moodle cercherà anche di impostare alcuni cookies nel vostro browser. Se questo è settato in modo da decidere ogni volta se accettare o meno i cookies, dovete accettare i cookies di Moodle, altrimenti il programma non funzionerà correttamente.)

> A questo punto Moodle comincerà a impostare il vostro database e a creare le tabelle per caricare i dati. Per prima cosa, sono create le tabelle del database principale. Dovreste vedere un certo numero di istruzioni SQL seguite da messaggi di stato (in verde o rosso) come le seguenti:

> > CREATE TABLE course ( id int(10) unsigned NOT NULL auto_increment, category int(10) unsigned NOT NULL default '0', password varchar(50) NOT NULL default '', fullname varchar(254) NOT NULL default '', shortname varchar(15) NOT NULL default '', summary text NOT NULL, format tinyint(4) NOT NULL default '1', teacher varchar(100) NOT NULL default 'Teacher', startdate int(10) unsigned NOT NULL default '0', enddate int(10) unsigned NOT NULL default '0', timemodified int(10) unsigned NOT NULL default '0', PRIMARY KEY (id)) TYPE=MyISAM

> > SUCCESS

> > ...e così via, seguite da: Main databases set up successfully.

> Se non vedete questo messaggio, ci deve essere stato qualche problema col database o con le impostazioni definite in config.php. Controllate che il PHP non sia nello stato "Safe mode" (i servizi commerciali di web hosting a volte hanno questa impostazione attiva). Potete controllare le variabili PHP scrivendo un piccolo file contenente <? phpinfo() ?> e guardando lo stesso file tramite il browser. Controllate e provate ancora questa pagina.

> Scorrete fino in fondo alla pagina e cliccate sul link "Continue".

> Quindi vedrete una pagina simile che imposta tutte le tabelle necessarie ad ogni modulo di Moodle. Come prima, queste dovrebbero essere tutte verdi.

> Scorrete fino in fondo alla pagina e cliccate sul link "Continue".

> A questo punto dovreste vedere una pagina nella quale potete definire diverse altre variabili di configurazione per la vostra installazione, come la lingua di default, l'host SMTP e così via. Non vi preoccupate troppo di impostare tutto correttamente da subito - potrete sempre tornare a modificare queste variabili più tardi usando l'interfaccia di amministratore. Scorrete fino in fondo e cliccate su "Save changes".

> Se vi bloccate su questa pagina e non riuscite ad andare avanti (e solo in questo caso), probabilmente il vostro server ha il problema che io chiamo "buggy referrer". Ma si può risolvere facilmente: basta mettere a off l'impostazione "secureforms", e quindi riprovare a continuare.

> Sulla prossima pagina potete definire parametri del vostro sito Moodle e della pagina iniziale, come il nome, il formato, la descrizione e così via. Definiteli (ma potete sempre ritornarci successivamente e modificarli) e premete "Save changes".

> Alla fine vi sarà chiesto di creare l'utente amministratore di livello più alto, per i futuri accessi alle pagine di amministrazione. Riempite i dettagli col vostro nome, email, ecc. e poi cliccate su "Save changes". Non tutti i campi sono obbligatori, ma se ne dimenticate qualcuno importante sarete avvertiti e potrete inserirlo.

> > > > > > Assicuratevi di ricordare utente e password scelti per l'amministratore, perché saranno necessari per i futuri accessi alla pagina di amministrazione.

> (Se per una qualunque ragione, la vostra installazione si interrompe, o c'è un errore di sistema o qualcosa che impedisce il login con l'utente e la password definite per l'amministratore, di solito potete entrare usando l'utente default "admin", con la password "admin".)

> Terminata l'operazione con successo sarete indirizzati alla homepage del vostro sito. Notare i link di amministrazione cha appaiono in basso a sinistra della pagina (questi item appaiono anche su una pagina Admin separata) - essi sono visibili solamente perché siete loggati come amministratore. Tutto il resto dell'amministrazione di Moodle si può ora fare usando questo menu, come ad esempio:

> - creazione e cancellazione di corsi
> - creazione e modifica di account utenti
> - amministrazione di account insegnanti
> - modifica delle impostazioni generali del sito come temi grafici, ecc.

### 9. Impostazione di cron

> Alcuni moduli di Moodle richiedono controlli continui per l'attivazione di task particolari. Per esempio, Moodle deve controllare con continuità i forum di discussione per poter inviare via mail agli iscritti, copie dei messaggi arrivati.

> Lo script che fa questo si trova nella directory admin e si chiama cron.php. Ma esso non si può attivare da solo, per cui c'è bisogno di impostare un meccanismo che attiva lo script stesso con regolarità (per es. ogni cinque o dieci minuti). Questo meccanismo fornisce una specie di "battito cardiaco" che permette allo script di eseguire varie funzioni per ogni modulo, ad intervalli di tempo definiti.

> Da notare che la macchina che esegue cron non è necessario che sia la stessa su cui gira Moodle. Per esempio, se avete un servizio limitato di hosting web che non permette questa funzione, potete decidere di eseguire cron su un altro server o sul vostro computer di casa. Quello che importa è che il file cron.php sia attivato regolarmente.

> Il peso di questo script non è molto alto, per cui di solito 5 minuti sono ragionevoli, ma se siete preoccupati potete anche ridurre la frequenza a 15 o anche a 30 minuti. E' meglio non allungare troppo questo tempo, perché grossi ritardi delle email possono rallentare l'attività complessiva del corso.

> Per prima cosa, provate lo script eseguendolo direttamente dal vostro browser:

> >     http://example.com/moodle/admin/cron.php

> Ora è necessario impostare qualche modo per far eseguire lo script automaticamente e regolarmente.

> #### Esecuzione dello script da una riga comando

> Si può richiamare la pagina da una riga comando esattamente come si è fatto nell'esempio precedente. Per esempio, si può utilizzare una utility Unix come 'wget':

> >     wget -q -O /dev/null http://example.com/moodle/admin/cron.php

> Da notare, in questo esempio, che l'output del comando è buttato via (a /dev/null).

> La stessa cosa usando lynx:

> >     lynx -dump http://example.com/moodle/admin/cron.php > /dev/null

> In alternativa potete usare una versione standalone di PHP, compilata per essere eseguita via riga comando. Il vantaggio è che i logs del vostro server non si riempiono con le ripetute richieste di cron.php. Lo svantaggio è la necessità di avere accesso alla versione di PHP a riga di comando.

> >     /opt/bin/php /web/moodle/admin/cron.php

> >     (Windows) C:\apache\php\php.exe C:\apache\htdocs\moodle\admin\cron.php

> #### Esecuzione automatica dello script ogni 5 minuti

> Sui sistemi Unix: Usare cron. Modificare le impostazioni cron dalla riga comando usando "crontab -e" e aggiungere la riga:

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

> Di solito il comando "crontab" vi immetteranno nell'editor 'vi'. Andate nell'"insert mode" premendo "i", quindi scrivete la riga mostrata sopra e poi uscite dall'"insert mode" premendo ESC. Salvate il file e uscite da "vi" scrivendo ":wq", o abbandonate senza salvare usando ":q!" (senza gli apici).

> Sui sistemi Windows: Il modo più semplice è usare questo programmino moodle-cron-for-windows.zip che rende molto semplice tutta l'operazione. Potete anche cercare di utilizzare l'utility Windows "Scheduled Tasks".

> Sui web server in hosting: Il pannello di controllo dovrebbe avere una pagina web che permette di impostare il processo cron. Chiedete eventualmente all'Amministratore dettagli su come funziona.

### 10. Creazione di un nuovo corso

> Ora che Moodle gira correttamente, potete creare un corso.

> Selezionate "Creazione di un nuovo corso" dalla pagina Admin (o dai link di amministrazione sulla home page)

> Riempite i campi richiesti nella pagina che appare, ponendo molta attenzione al formato del corso. Non vi dovete preoccupare troppo dei dettagli in questa fase, poichè ogni cosa può essere successivamente modificata dall'insegnante.

> Premete "Salva", e salterete ad una nuova pagina dove potrete assegnare gli insegnanti al corso appena creato. Da questo pagina potete solamente scegliere tra gli utenti già esistenti - se volete creare un nuovo insegnante, potete, o chiedere allo stesso di crearsi un account da solo (vedi la pagina di login) o potete creare voi stessi un account per l'insegnante usando il comando "Aggiunta di un nuovo utente" sulla pagina di amministrazione.

> Fatto questo, il corso è pronto per essere personalizzato ed è accessibile dal link "Corsi" presente sulla home page.

> Leggere il "Manuale Insegnante" per maggiori dettagli sulla creazione dei corsi.

Documentazione di Moodle

Version: $Id$