In questo articolo vedremo come installare sulla nostra Linux Box un'infrastruttura server LAMP su una macchina virtuale, allo scopo di poterlo sfruttare per rendere accessibile remotamente il PC o per ospitare un piccolo sito personale. LAMP (Linux Apache MySQL PHP/ Perl/Python) è l'acronimo che indica una delle configurazioni server più diffuse al mondo: Apache per consentire la gestione delle richieste HTTP inviate dai comuni browser, MySQL come database e PHP (talvolta sostituito da Python o Perl) per gestire la logica delle applicazioni (o applicazioni web).
Installeremo il web server utilizzando VirtualBox per la gestione delle macchine virtuali, ed adotteremo Debian 6 nella versione più scarna e minimale, dotata del minimo indispensabile per avviare le applicazioni sopra citate (non avremo la necessità, per esempio, di ambienti desktop). Con poche modifiche, inoltre, è facile utilizzare le istruzioni che seguono per installare un server LAMP su una macchina reale ben distinta.
Per rendere tutto il processo "windows-free" utilizzeremo come host di virtualizzazione OS X. Non entreremo, sarebbe al di fuori dell'argomento di questo articolo, nella procedura di configurazione di PHP o MySQL. Per questo potete fare riferimento alla Guida PHP su Linux o alla Guida MySQL.
Installare VirtualBox e creare la macchina virtuale
La prima cosa che dovremo fare sarà scaricare, dal sito ufficiale, l'ultima versione di VirtualBox, un programma di virtualizzazione in grado di fornire le risorse virtuali ad un sistema operativo (detto virtualizzato) di architettura x86, e che quindi ne consente l'esecuzione all'interno di un altro sistema operativo principale.
L'installazione di questo programma è molto semplice ed intuitiva e non richiede precisazioni. Una volta installato, potremo avviarlo e decidere se montare o no le immagini di uno o più sistemi operativi, eventualmente su più periferiche virtuali.
Prima di procedere, però, scarichiamo Debian 6 connessione ad internet
Una volta scaricata l'immagine New disco fisso virtuale
Alla fine della procedura guidata, avremo creato la macchina virtuale.
Figura 2: La macchina virtuale (ancora vuota) è pronta per essere utilizzata
(clic per ingrandire)
Installare Debian 6 tramite internet
A questo punto, non ci resta che montare, su una periferica virtuale accessibile dalla virtual machine appena creata, l'immagine del sistema operativo che abbiamo scaricato. Per farlo, clicchiamo con il tasto destro sul nome della macchina virtuale, e selezioniamo la voce Settings…. Qui andiamo alla scheda Archiviazione e, alla voce Controller IDE, clicchiamo sull'icona a forma di CD e selezioniamo un file dal disco. Per semplicità, la schermata di riferimento è mostrata in figura 3.
Una volta selezionata l'immagine, clicchiamo su OK Start scelta dei pacchetti
Dopo l'installazione del sistema di base, ci verrà chiesto di scegliere il mirror Italia ftp.it.debian.org Server web Utilità di sistema standard
Figura 4: Installazione di Debian 6: selezioniamo solo i pacchetti che ci interessano
(clic per ingrandire)
Selezionate le voci, premiamo il tasto Invio MySQL PHP
Debian, come tutti i sistemi basati su questa distribuzione, dispone di uno strumento molto utile per l'installazione dei pacchetti presenti sui repository ufficiali: apt
$ su
# apt-get install mysql-server
E per installare PHP con tutti i pacchetti aggiuntivi:
$ su
# apt-get install libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-domxml php5-gd php5-imap php5-ldap php5-mcal php5-mhash php5-mysql php5-odbc php5-pear php5-xslt
Alla fine, dovremmo avere installato tutto ciò che ci serve per utilizzare il nostro server LAMP. Vediamo adesso come utilizzare praticamente gli strumenti appena installati.
Un mini-sito statico sul server virtuale
Apache risponde alle richieste HTTP riferendosi ad una directory del server in cui vengono salvate tutte le risorse accessibili. Per prima cosa, quindi, dobbiamo rintracciare questa directory all'interno del sistema appena installato. Avendo installato Apache contestualmente all'installazione di Debian, la directory in questione sarà /var/www, e al suo interno troveremo una pagina HTML di test (index.html). Basterà aggiungere file o pagine web a questa directory, per poi potervi accedere tramite un comune browser web.
A questo punto, non resta che rendere accessibile dall'esterno la directory del server appena identificata. Per farlo, chiudiamo momentaneamente la virtual machine e, su VirtualBox, selezioniamo il nostro server virtuale. Apriamo, quindi, nuovamente i Settings ma, questa volta, alla scheda Rete, assicuriamoci che la voce Connessa a: sia valorizzata con l'opzione Scheda con bridge. In questo modo potremo associare alla macchina virtuale un indirizzo IP locale diverso da quello delle altre macchine connesse al router. In altre parole, per il router (e per la rete) il nostro server apparirà come una macchina reale e distinta dal PC su cui, in realtà, è eseguito in modo virtualizzato.
Figura 5: Configurazione della scheda con bridge per il server virtuale
(clic per ingrandire)
Riavviamo, ora, la macchina virtuale. Dopo avere effettuato il login, digitiamo da terminale il comando:
ifconfig
e cerchiamo l'indirizzo IP che il router ha associato al nostro server. Supponiamo, ad esempio, che sia 192.168.1.10. Spostiamoci, a questo punto, su un browser del PC su cui sta girando VirtualBox, e digitiamo sulla barra degli indirizzo la URL:
http://192.168.1.10
Se tutto è andato bene, riusciremo a visualizzare la pagina web index.html /var/www
Conclusioni
A questo punto, capiamo quanto sia semplice condividere file con altri computer della rete, ovvero con tutti gli utenti del Web (configurando opportunamente il NAT sul nostro router, in modo da rindirizzare le connessioni in entrata alla porta 80 verso l'indirizzo IP locale del server virtuale). Copiando i file che rappresentano un sito web (o qualsiasi altro documento che si vuole condividere) all'interno di /var/www , sarà sufficiente digitare su un qualsiasi browser una URL simile alla seguente (con riferimento all'indirizzo IP d'esempio usato in precedenza):
http://192.168.1.10/LaMiaDirectory/fileEsempio.jpeg
Ovviamente esistono anche metodi alternativi e molto più efficienti per la condivisione dei file. Ma un piccolo server LAMP virtuale potrebbe essere un ottimo compromesso per chi non può (o non vuole) permettersi l'hosting tramite servizi a pagamento, magari accontentandosi delle risorse relativamente limitate che una rete domestica e un PC possono offrire.