3. Come realizzare un Web Server 3.1 Che cos'è un web server Il web server, è un programma che ha come scopo principale quello di ospitare delle pagine web che possono essere consultate da un qualsiasi client connesso alla rete internet per mezzo di un programma browser. Queste pagine viaggiano attraverso tutti i nodi della rete posti tra il client e il server e vengono gestite generalmente dal protocollo HTTP. Come la maggior parte dei software anche un web server ha bisogno di essere eseguito dalla CPU. Se le pagine contenute all'interno del web server sono composte solo da codice HTML come avveniva qualche anno fa, nel computer in questione non bisogna altro che installare il software di base ( web server e S.O. ). Invece se si intende aumentare le potenzialità del servizio bisogna dotarsi di altri componenti che oramai stanno diventando uno standard. Per la realizzazione del web server ( come per firewall ) si è deciso di utilizzare un sistema operativo GNU/Linux, in particolare si è adottata la distribuzione Debian nella versione 4.0 stabile. Per quanto riguarda il server web si è scelto di installare APACHE 2 anche lui nella versione stabile. Il web server che è stato realizzato viene chiamato anche server LAMP. In quanto è costituito da quattro elementi oramai fondamentali : Linux,Apache,Mysql e Php dal quale ha origine la sigla LAMP. 3.2 Che cos'è Apache Sostanzialmente Apache è un software ideato per gestire pagine web. Questo programma è nato nel 1995 da un gruppo di sviluppatori che intendeva portare avanti un progetto che aveva appunto come obbiettivo la creazione di un web server libero. Apache, provenendo dal mondo Linux, gode della licenza Open Source e quindi gli sviluppatori rendono pubblici i codici sorgenti. Questo software è molto apprezzato sia perché è gratuito sia perché è sicuro,leggero e molto potente,basti pensare che il 60% dei server web attivi in rete sono Apache. Inoltre è compatibile con i tre sistemi operativi più utilizzati UNIX,Linux e Windows. Un'altra caratteristica è che può gestire più siti web contemporaneamente anche di natura diversa e metterli in comunicare tra loro senza problemi. Per quanto riguarda la configurazione non è molto complicata perché viene fatta modificando uno script principale che prende il nome di httpd.conf. Questo file lo si può editare con un qualsiasi editor di testi ed è collocato nella directory apache richiamabile da shell con: nano /etc/apache2/httpd.conf (nano è il nostro editor di testi). 3.3 Installazione del sistema operativo GNU/Linux Debian La prima operazione da fare è quella di procurarsi un disco di installazione di Debian, reperibile dal sito internet www.debian.org Quando si realizza un server web,per motivi di sicurezza,è bene installare il sistema operativo senza interfaccia grafica perché se quest'ultima avesse dei bug potrebbe lasciare libero spazio ad eventuali cracker che distruggerebbero il sistema. Per velocizzare e per avere la certezza di installare del software il più aggiornato possibile è consigliato non scaricare una ISO di Debian completa ma optare verso le ISO minimali. Una buona può essere la netbuinness poco più grande di 30 MB, perché al suo interno sono contenuti solamente i driver delle schede di rete e le lingue per l'installazione. Tutti gli altri pacchetti verranno scaricati automaticamente durante il setup. Per prima cosa dopo aver masterizzato l'immagine ISO della distribuzione e aver inserito il risultato della stessa nel lettore cd,occorre impostare dal BIOS il lettore cd come prima periferica di boot. Per facilitare l'installazione agli utenti meno esperti ho esposto l'argomento in due modi diversi: dopo aver descritto le azioni da intraprendere ho inserito degli screen shoot raffiguranti tutti i passi dell'installazione con una breve descrizione. Pagina 16 di 27
Installazione di Debian parte descrittiva Impostazione della lingua di sistema Riconoscimento automatico hardware pc Installazione driver scheda di rete Configurazione scheda di rete Partizionamento del disco fisso Copia dei file di installazione Installazione sistema base Creazione degli utenti installazione boot manager La prima cosa che l'installer propone è la selezione della lingua che si intende usare durante l'installazione,successivamente bisogna indicare il paese di riferimento e la lingua della tastiera in uso. Successivamente il sistema inizierà a rilevare l'hardware presente nella macchina poi,automaticamente cercherà di configurare la scheda di rete per mezzo del protocollo DHCP. Se la rete ne fosse sprovvista bisogna procedere con la configurazione manuale indicando i seguenti indirizzi: Indirizzo IP della macchina es. 192.168.1.1 Maschera di rete es. 255.255.255.0 Gateway ( l'indirizzo del gateway deve essere lo stesso della scheda in qui si trova fisicamente la macchina, nel nostro caso si trova sotto la rete ARANCIO e ha indirizzo 192.168.4.1 ) Inserire i DNS ( forniti dal proprio provider ) Ora bisogna scegliere un nome che andrà assegnato alla macchina e indicare il nome dell'eventuale dominio. Siccome tutti i pacchetti verranno scaricati dai server Debian bisogna scegliere la nazione del mirror da cui prelevare i pacchetti. Dopo aver scelto la sorgente software più vicina a noi bisogna indicare da quale dei server Debian si intendono prelevare i sorgenti. I repository ufficiali italiani sono i seguenti: 1) ftp.it.debian.org 2) ftp.bononia.it 3) freedom.dic ea.unifi.i 4) debian.fastweb.it 5) ftp.unina.it 6) debian.fastbull.org t Il repository consigliato da Debian è il primo. Per completare la configurazione della rete verrà chiesto di indicare un server proxy con la relativa porta,sempre se nella rete ne è presente uno. La distribuzione ora reperirà dalla rete tutti gli strumenti software per portare a termine con successo l'installazione del prodotto. La prossima operazione consiste nel partizionare adeguatamente il disco fisso. Questo processo lo si può far compiere automaticamente dall'installer scegliendo appunto la voce installa il sistema utilizzando l'intero disco,in questo modo l'utente non interviene direttamente sul disco fisso. Se invece si preferisce personalizzare o più semplicemente si vogliono impostare le dimensioni o utilizzare un file system diverso selezionare la voce partizionamento personalizzato. Solitamente il disco viene suddiviso nel seguente modo: hda hda0 Partizione di boot Questa partizione è destinata a contenere il boot manager che ha il compito di gestire più sistemi operativi o permette di attivare delle modalità di ripristino del sistema. È bene ricordarsi di scegliere il seguente punto di mount /boot. hda1 Partizione di sistema Questa partizione conterrà l'intero sistema operativo, la si può formattare con diversi tipi di file system quello più usato è ext3. Come per la partizione di boot anche questa ha bisogno del proprio punto di mount che deve essere alla radice ovvero: punto di mount /. hda2 partizione swap Questa area del disco è speciale perché viene usata dal sistema come una sorta di memoria RAM aggiuntiva,deve essere formattata come partizione di swap e la sua dimensione deve essere almeno il doppio della memoria RAM. Ora l'installer preleverà dalla rete i pacchetti contenti il sistema base, poi al termine comparirà una schermata nella quale bisogna scegliere che tipo si sistema si intente installare. Nel nostro caso selezionare la voce sistema base con la barra spaziatrice della tastiera. Al termine di tale operazione bisogna creare almeno un utente amministratore che nel mondo di linux viene chiamato root dall'inglese radice. Dopo l'operazione di partizionamento il sistema chiederà quale tipo di computer si vuole realizzare, scegliere la voce Sistema standard. Pagina 17 di 27
A questo punto bisogna creare vengono creati due utenti con tanto di password. Il primo sarà l'utente root ( amministratore della macchina ) mentre l'altro sarà un semplice user con privilegi limitati. Prima di concludere viene installato grub un boot manager, visto che abbiamo creato una partizione atta a contenere ciò, installiamo grub nella prima partizione del nostro disco. L'installazione si conclude con un riavvio del computer e se si sono seguiti tutti i passi la nostra Debian dovrebbe caricarsi correttamente. Installazione di Debian Screen Shoot Premere invio per dare inizio all'installazione. Scegliere la propria lingua. Inserire il paese corrispondente. Scegliere la lingua della tastiera. Vengono rilevate le periferiche presenti sul computer. Viene configurata automaticamente la rete, premere annulla se la si vuole configurare automaticamente. Se interessa scegliere configura la rete manualmente. Assegnare un indirizzo valido alla macchina. Assegnare una net mask di rete. Per un IP di classe C usare una net mask di classe C Inserire l'indirizzo del gateway. Inserire almeno un indirizzo di DNS valido. Assegnare un nome alla macchina. Pagina 18 di 27
Se si è sotto un dominio inserire il nome corrispondente, se no lasciare vuoto e procedere. Inserire la nazione del mirror più vicino al proprio paese. Scegliere il mirror preferito. Se si è indecisi scegliere il primo. Se è presente un server proxy inserire l'indirizzo e porta. Altrimenti lasciare vuoto. Per partizionare manualmente il disco preme manuale, altrimenti scegliere partizionare in maniera guidata. Creare le tre partizioni seguendo lo schema descritto precedentemente. Selezionare solo la voce sistema base. Creare i due utenti proposti e il boot manager. L'installazione termina si conclude con un riavvio. Ora dopo aver fatto accesso al sistema digitando user id e password di amministratore e possibile procedere installando il web server Apache come viene descritto successivamente. 3.4 Installazione di Apache L'installazione di questo applicativo viene semplificata grazia ad APT (Advanced Packaging Tool) che è un sistema che permette di risolvere in maniera quasi automatica tutte le dipendenze dei software durante il processo di installazione. È importante sapere che apt può gestire esclusivamente i pacchetti con estensione.deb originalmente ideati appunto per questa distribuzione. Con questo semplice comando per poter installare un programma basta digitare apt-get install nome programma e in automatico apt andrà a reperire tutti i pacchetti dal mirror selezionato durante l'installazione di Debian. In realtà il funzionamento di apt è ben più complicato, ma dalla shell dei comandi digitando man apt si aprirà una guida dettagliata su di esso (il comando man mette a disposizione una guida su qualsiasi comando linux). Ritornando all'installazione di apache useremo solamente quattro-sotto comandi di apt: apt-get update esegue una sincronizzazione dell'elenco dei pacchetti presenti nel computer con quello del mirror server. La lista dei pacchetti si trova all'interno di: /etc/apt/ dove è presente il file sources.list editabile con qualsiasi editor di testo come il noto vim o nano. Per modificare il file bisogna avere i privilegi di admin,che si possono avere scrivendo su root. apt-get upgrade aggiorna sostanzialmente tutti i pacchetti installati nel sistema. apt-get install apache2 come mostra l'immagine sottostante oltre al pacchetto apache2 verranno ulteriormente installati i Pagina 19 di 27
seguenti pacchetti: Ora Apache è installato nel sistema,per rendere effettive le modifiche,occorre riavviare la macchina con il comando reboot. Dopo il riavvio del sistema digitiamo dal browser di un qualsiasi client l'indirizzo del web server e, se tutto è andato a buon fine,si caricherà una pagina contenente la scritta It Works! o qualcosa di simile. A questo punto è possibile procedere con l'installazione degli altri componenti. 4. Le piattaforme per i servizi web 4.1 Le piattaforme per la gestione dei database Mysql e la programmazione PHP 4.1.1 Installazione di Mysql Il procedimento per installare Mysql è simile a quello descritto prima. Da shell sempre utilizzando apt scarichiamo i seguenti pacchetti: apt-get install mysql-server apt-get install php5 apt-get install php5-mysql Ora il web server è dotato del potente DBMS Mysql ma è richiamabile e gestibile solamente da linea di comando digitando appunto mysql. Pagina 20 di 27
4.1.2 Installazione di Phpmyadmin Con il comando apt-get install Phpmyadmin è possibile installare appunto la piattaforma Phpmyadmin che permette di gestire il DBMS tramite interfaccia grafica. Come al termine di ogni installazione è vivamente consigliato un riavvio della macchina. Come per apache, Phpmyadmin è richiamabile scrivendo phpmyadmin nella barra degli indirizzi naturalmente preceduto dall'indirizzo del web server. Per esempio: http://89.96.168.60/phpmyadmin Sia Joomla che Moodle per poter funzionare hanno bisogno di un database in qui archiviare i dati;per questo motivo prima di procedere è bene creare questi due database con il Phpmyadmin. Per fare tale operazione avviamo il programma dalla pagina principale inseriamo il nome del database e clicchiamo sul bottone crea; non c'è bisogno di creare tabelle perché esse verranno generate automaticamente dalla piattaforma durante l'installazione. Bisogna infine associare alle tabelle i rispettivi utenti; selezionando privilegi e creando due utenti,come illustrato nell'immagine sottostante. Creare un database per ogni piattaforma Dalla pagina principale cliccare su Compilare a piacere i campi che seguono e successivamente su Per motivi di sicurezza spuntare i seguenti campi: Sempre dalla pagina principale cliccare su e selezionare l'utente creato precedentemente Al termine cliccare sul Applica / Esegui. In questa maniera vengono creati degli utenti che possono solamente creare ed eliminare le tabelle del database corrispondente. Applicando questi privilegi si dovrebbero ridurre i danni accidentali e non. A questo punto abbiamo un server perfettamente funzionante e non ci resta che procedere con il caricamento delle rimanenti piattaforme Joomla e Moodle. Pagina 21 di 27