martedì 14 giugno 2011

Server HotSpot per reti Wireless

Operazioni preliminari

Questo How-To prevede l'istallazione e la configurazione di un server ubuntu
versione 10.04.2 LTS come Hot Spot WiFi utilizzando
Freeradius, Mysql, Chillispot.

I prerequisiti per l'installazione sono modesti e possono essere così
esemplificati:

  • Un computer con due interfacce di rete (il SERVER), nel nostro caso la
    configurazione adottata è PC PIII 1GHz + RAM 128 MByte + HD 10 GByte + 2 NIC
    Realtek 8139;
  • un access-point wireless, non strettamente necessario se si vuole collegare
    computer cablati;
  • un computer (il CLIENT) ulteriore necessario per i test, dotato di un
    interfaccia di rete ethernet o wireless e di un browser che supporti i Pop-Up.

In questa scheda vediamo "graficamente" come si prevede interagiscano i computer

________ 
|        |           access-point
| CLIENT | ))))      ((( \|/      ________    Internet
|________|                |      |        |      |
                          +------| SERVER |------+
   rete 192.168.2.0/24      eth1 |________| eth0

E' necessario che il server sia configurato come server LAMP
(Linux/Apache/MySQL/Php/Perl/Pyton); per la verifica digitare da terminale:

tasksel

Configurando la macchina come server è comodo selezionare alcune opzioni
utili per l'uso futuro.

Tastiera e monitor: la macchina, funzionando da server,
presumibilmente non avrà collegato un monitor perche vi si accederà da pc remoto
e per lo stesso motivo non avrà una tastiera. Per evitare che all'avvio il SO si
blocchi per la mancanza della tastiera accedere al bios prima del caricamento
del SO ed impostare la funzione Halt On a "All but keyboard".

Di seguito dopo aver aggiornato la repository del software:

sudo apt-get update
sudo apt-get upgrade

installare il pacchetto openssh-server che ci permetterà l'accesso al server
da pc remoto

sudo apt-get install openssh-server

Ora con programmi come putty.exe sarà possibile entrare da remoto nel server.

Impostiamo quindi l'indirizzo IP in modo che sia statico (di norma durante
l'istallazione del SO l'indirizzo IP viene acquisito automaticamente da un server
DHCP). apriamo il file /etc/network/interfaces

sudo nano /etc/network/interfaces

e sostituiamo alle righe...

auto eth0
iface eth0 inet dhcp

le righe...

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

In questo modo attribuiamo a eth0 l'indirizzo 192.168.1.250 e , con questa
scheda di rete ci collegheremo al router e quindi ad internet.

Aggiungere inoltre, allo stesso file, la seconda scheda di rete (eth1) che servirà per la connessione
ai client wireless;

auto eth1

Penserà Chillispot ad attribuire ai client l'indirizzo opportuno; salvare il file e riavviare il servizio di networking

sudo /etc/init.d/networking restart

Attivare in /etc/sysctl.conf l'IP Forward del router integrato nel Kernel
assicurandosi che sia decommentata la seguente riga:

net.ipv4.ip_forward=1

ed effettuando subito la modifica:

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

Riavviare la configurazione di rete del server

sudo /etc/init.d/networking restart

Aggiungere all'avvio il caricamento del modulo tun. Per farlo aggiungere una
riga con scritto "tun" in /etc/modules. Caricare nel frattempo il modulo con il
comando:

sudo modprobe tun

Server Radius e Database

Installare i pacchetti freeradius e freeradius-mysql:

sudo apt-get install freeradius freeradius-mysql

Con le versioni più recenti di Ubuntu (dalla 8.10 in poi) sarà installata la
versione 2 di FreeRadius, .
Creare il database, che sarà utilizzato per la gestione del sistema di
autenticazione RADIUS, con il seguente comando (rispondere al prompt "Enter
password: " con la password dell'utente DB root e poi digitare al prompt "mysql>
" i comandi seguenti):

mysql -u root -p
Enter password: mysqladminsecret
mysql> CREATE DATABASE radius;
mysql> quit

Creare un utente con i privilegi di accesso e modifica del database radius con
la struttura delle tabelle:

mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'mysqlsecret';
mysql> FLUSH PRIVILEGES;
mysql> quit

Creare la struttura del database

NB Bisogna loggarsi da root digitando la password perchè l'accesso a questi
file è negato

sudo su
enter password
mysql -u radius -p radius < /etc/freeradius/sql/mysql/schema.sql
mysql -u radius -p radius < /etc/freeradius/sql/mysql/nas.sql
exit

Aggiustare il file /etc/freeradius/sql.conf con i dati di connessione al
database appena settati:

server = "localhost"
login = "radius"
password = "mysqlsecret"

Configurare il client 127.0.0.1 nel file /etc/freeradius/clients.conf
con il
valore della password per le connessioni al server Radius:

client 127.0.0.1 {
 secret = radiussecret
}

Test della configurazione (predefinita) basata su file

La configurazione predefinita di FreeRadius autorizza gli utenti con UserName e
Password da un file che si trova in /etc/freeradius/users. Possiamo effettuare
un test per la configurazione predefinita basata su file prima di modificare la
modalità di autorizzazione da "file" a "sql" (mysql).

Aggiungiamo quindi utente e password al nostro file degli utenti modificando la
riga che inizia con "John Doe":

sudo nano  /etc/freeradius/users

Decommentare:

"John Doe" Auth-Type := Local, User-Password == "hello"
Reply-Message = "Hello, %u"

A questo punto riavviamo la nostra macchina 

reboot

Quindi passiamo alla modalità debug di freeradius dopo aver fermato il servizio


sudo /etc/init.d/freeradius stop
sudo freeradius -XXX

Se tutto andrà bene l'ultima riga mostrerà il seguente messaggio:

Mon Mar 24 11:32:35 2008 : Info: Ready to process requests.

Digiyiamo Ctrl + C per uscire dalla modalità di debug

Facciamo ripartire il servizio di Freeradius

sudo /etc/init.d/freeradius start

Effettuiamo il test di autorizzazione basato su file

sudo radtest "John Doe" hello 127.0.0.1 0 radiussecret

Se tutto andrà bene dovreste avere la seguente risposta:

Sending Access-Request of id 136 to 127.0.0.1 port 1812
User-Name = "John Doe"
User-Password = "hello"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=136, length=37
Reply-Message = "Hello, John Doe"

Modalità DataBase

A questo punto possiamo convertire la modalità basata su file con quella basata su
DataBase.

sudo nano  /etc/freeradius/radiusd.conf

decommentare la linea 


#$INCLUDE sql.conf

quindi aprendo il file /etc/freeradius/sites-available/default:

nano /etc/freeradius/sites-available/default

modifichiamo...

authorize {
 preprocess
 chap
 suffix
 eap
 #files ###Cambiare Manualmente
 sql ###Cambiare Manualmente
 }
authenticate { Auth-Type PAP { pap
} Auth-Type CHAP { chap } eap } accounting { detail radutmp sql ###Cambiare Manualmente } session { sql ###Cambiare Manualmente
}

E' una buona idea testare questa nuova configurazione prima di andare avanti,
quindi inseriamo un utente nel database:


$ echo "INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('mysqltest', 
'Password', 'testsecret');" | mysql -u radius -p radius

E, dopo aver riavviato il servizio freeradius, ritentiamo il test di prima con i nuovi valori:


$ sudo /etc/init.d/freeradius restart
$ sudo radtest mysqltest testsecret 127.0.0.1 0 radiussecret

Questo è il risultato...


Sending Access-Request of id 197 to 127.0.0.1 port 1812
User-Name = "mysqltest"
User-Password = "testsecret"
NAS-IP-Address = 127.0.1.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=197, length=20

ChilliSpot

Installiamo il pacchetto chillispot, che è presente nella repository di ubuntu.


$ sudo apt-get install chillispot

In fase di installazione, ci saranno rivolte alcune domande per configurare
chillispot. Ecco un elenco delle domande e delle risposte relative:


IP address of radius server 1: 127.0.0.1


Radius shared secret: radiussecret


Ethernet interface for DHCP to listen: eth1


URL of UAM server:
https://10.1.0.1/cgi-bin/hotspotlogin.cgi


URL of UAM homepage:


Shared password between chillispot and webserver: uamsecret

Conviene comunque revisionare il file di configurazione per dare le informazioni
che necessita a ChilliSpot configurando il file /etc/chilli.conf
in modo
opportuno:

net 192.168.2.0/24 ###change manually
#dns1 192.168.2.1 
#dns2 192.168.2.1 
domain domain.org ###change manually
radiusserver1 127.0.0.1 
radiusserver2 127.0.0.1 
radiussecret radiussecret 
dhcpif eth1
uamserver https://192.168.2.1/cgi-bin/hotspotlogin.cgi
#uamhomepage https://192.168.2.1/welcome.html ###change manually
uamsecret uamsecret
uamlisten 192.168.2.1 ####change manually
uamallowed www.google.it,192.168.2.0/24 ###change manually

Nota: uamhomepage è stata commentata perchè è opzionale


Per verificare eventuali errori nel file conf di Chillispot eseguire il comando


sudo /etc/init.d/chillispot start

Se si verifica un errore esso verrà mostrato sul monitor con il numero della
riga relativa che ha causato l'errore. Aprire il file chilli.conf e cercare la
riga per correggere il problema.


Se si riceve il messaggio:


Chillispot captive portal: disabled, see /etc/default/chillispot

aprire il file /etc/default/chillispot ed abilitare il servizio:


nano -w /etc/default/chillispot


ENABLED=1

Installazione Firewall

La procedura di istallazione di ChilliSpot ha creato delle regole per il firewall che vanno
abilitate:

sudo cp /usr/share/doc/chillispot/firewall.iptables /etc/init.d/chilli.iptables
sudo chmod a+x /etc/init.d/chilli.iptables
sudo ln -s ../init.d/chilli.iptables /etc/rcS.d/S41chilli.iptables

Le regole predefinite per il Firewall sono configurate in modo che eth0 sia
connessa ad internet mentre eth1 alla LAN. Se vogliamo cambiare questo settaggio
apriamo il file:


nano -w /etc/init.d/chilli.iptables
EXTIF=eth0
INTIF=eth1

Vale la pena aprire la porta 80 ad eth0 per permettere di gestire i record di
mysql con applicazioni web come phpmyadmin, ezradius, dialup admin o altre.
Quindi apriamo il file /etc/init.d/chilli.iptables e aggiungiamo alla riga:


$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT

la riga:


$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 80 --syn -j ACCEPT

Apache Server

Creare la pagina di login

sudo mkdir -p /var/www/hotspot/cgi-bin
zcat -c /usr/share/doc/chillispot/hotspotlogin.cgi.gz | sudo tee (segue...) /var/www/hotspot/cgi-bin/hotspotlogin.cgi
sudo chmod a+x /var/www/hotspot/cgi-bin/hotspotlogin.cgi

Modifichiamo lo script di login


nano -w /var/www/hotspot/cgi-bin/hotspotlogin.cgi

Decommentiamo e modifichiamo opportunamente la password

 
$uamsecret = "uamsecret";
$userpassword=1;

SSL

Apache Modules

Per installare il modulo di Apache2 per l'autenticazione via MySQL bisogna
eseguire il seguente comando da terminale:

sudo apt-get install libapache2-mod-auth-mysql

Una volta installato il modulo, questo sarà disponibile nella directory 
/etc/apache2/mods-available. Sarà necessario usare il comando
a2enmod per abilitare il modulo. Si potrà utilizzare il comando
a2dismod per disabilitare il modulo. Una volta abilitato il
modulo sarà disponibile nella directory /etc/apache2/mods-enabled.

Setup up di Apache e SSL

Siate sicuri che LAMP server sia installato; se non è così si usi il comando:

tasksel

Creare il certificato


sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl

E' necessario trovare il nome del nostro host per il certificato:


hostname -f

(Hardcoding cert lifetime based on this patch:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=293821#22
)


sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

(Rispondere alle domande)


Nota: l'"HostName" deve essere scritto correttamente in base a quello che
risulta dall'esecuzione del comando hostname -f


host.name #change to your host name

Install Module

Il modulo mod_ssl aggiunge ad apache2 Server una importante possibilità, quella
di criptare le comunicazioni. Così quando il vostro browser comunica usando la
cripazione SSL il prefisso https:// è usato all'inizio dell'URL nella barra
degli indirizzi del browser.

sudo a2enmod ssl
/etc/init.d/apache2 force-reload

Creare il virtualhost

Creare un file virtualhost

sudo nano -w /etc/apache2/sites-available/hotspot

e modificarne il contenuto in modo che risulti simile al seguente

NameVirtualHost 192.168.2.1:443   
 <VirtualHost 192.168.2.1:443>       
 ServerAdmin webmaster@domain.org       
 DocumentRoot "/var/www/hotspot"       
 ServerName "192.168.2.1"       
 <Directory "/var/www/hotspot/">           
  Options Indexes FollowSymLinks MultiViews           
  AllowOverride None           
  Order allow,deny           
  allow from all       
 </Directory>
       
 Alias "/dialupadmin/" "/usr/share/freeradius-dialupadmin/htdocs/"       
 <Directory "/usr/share/freeradius-dialupadmin/htdocs/">           
  Options Indexes FollowSymLinks MultiViews           
  AllowOverride None           
  Order allow,deny           
  allow from all       
 </Directory>
       
 ScriptAlias /cgi-bin/ /var/www/hotspot/cgi-bin/       
 <Directory "/var/www/hotspot/cgi-bin/">           
  AllowOverride None           
  Options ExecCGI -MultiViews +SymLinksIfOwnerMatch           
  Order allow,deny           
  Allow from all       
 </Directory>
       
 ErrorLog /var/log/apache2/hotspot-error.log
      
 LogLevel warn

 CustomLog /var/log/apache2/hotspot-access.log combined

 ServerSignature On       
 SSLEngine on       
 SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>

Abilitare VirtualHost SSL

sudo a2ensite hotspot
/etc/init.d/apache2 reload

Porte in ascolto

La porta 443 deve rimanere in ascolto per HTTPS. E' necessario quindi aggiungere
la stringa seguente al file /etc/apache2/ports.conf :

nano -w /etc/apache2/ports.conf

Listen 192.168.1.250:80
<IfModule mod_ssl.c>
    Listen 192.168.2.1:443
</IfModule>



Server Root

nano -w /etc/apache2/apache2.conf

aggiungere


ServerName 192.168.1.250

Modificare il file host

 
nano -w /etc/hosts
192.168.2.1 host.name host #cambiare con il proprio nome.host

Riavviare il server di Apache:


sudo /etc/init.d/apache2 restart

Ora il Browser web dovrebbe essere in grado di collegarsi alla pagina


https://192.168.2.1/cgi-bin/hotspotlogin.cgi

e alla pagina

http://192.168.2.1:3990/

Finito

Riavviare il computer e ogni cosa dovrebbe funzionare regolarmente

reboot

mercoledì 6 aprile 2011

Accedere da PC remoto windows a ubuntu server via Putty

Server e Client openSSH


Putty è un conosciuto e maneggevole client per l'accesso remoto attraveso il protocollo open-SSH.

E' possibile salvare il client Putty sul proprio PC Windows dopo averlo scaricato da questo sito.

Si tratta di un eseguibile che si avvia automaticamente e non ha bisogno di istallazione.

Per poter accedere ad un pc con ubuntu invece bisogna installare su questo l'applicazione server.

Basterà digitare da shell:


sudo apt-get install openssh-server


A questo punto non rimane che avviare l'applicazione client (putty) riempire le caselle di testo come richiesto ed avviare la connessione.

Dopo il log si lavorerà nella finestra di windows come nella shell del server.

Buon Lavoro

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.