Per sviluppare applicazioni web che gireranno sotto ambiente Linux, mentre noi abbiamo il nostro PC in ambiente Windows, esistono delle applicazioni dette WAMP (acronimo di windows, apache, MySQL, PHP) che permettono di far girare un webserver con database tipico dei server Linux.
Tuttavia permangono differenze, anche piuttosto sostanziali, per cui la soluzione migliore è quella di avere un sistema Linux completo. Per fortuna il mercato in questi ultimi anni ha proposto gratuitamente dei gestori di macchine virtuali che permettono di oltrepassare anche questa difficoltà.
In particolare mi riferisco al progetto VirtualBox della Sun Microsystem, un software leggero, multipiattaforma ed estremamente potente e duttile. Quindi vediamo come creare sul nostro sistema Windows, un ambiente operativo Linux Server (usando una Ubuntu Server a 64Bit) che serva allo scopo.
A questo punto sorge un problema “logico” ovvero la trasportabilità dei files. Se stiamo lavorando con il nostro editor di sviluppo sotto Windows, poi dovremo trasferire il tutto alla macchina virtuale per vederne i risultati. Questa situazione si rivela piuttosto seccante poichè l’operazione si svolgerà molto spesso. Per fortuna VirtualBox dispone di una funzione chiamata “Cartelle Condivise” ovvero permette alla macchina virtuale (Guest) di accedere ad una specifica cartella del nostro sitema operativo Host.
Pertanto nel nostro esempio condivideremo la cartella virtuale “home” di Apache con una cartella reale di Windows, dove noi andremo ad operare le modifiche.
Procediamo con l’installazione di VirtualBox in ambiente Windows. Avviene con il classico setup a wizard, per cui non mi dilungo oltre nella descrizione.
Al termine avviamo la creazione da wizard di una macchina virtuale Linux, terminata indichiamo di usare la ISO di ubuntu server come cd-rom che fungerà come sorgente di installazione. Potete farlo da File “Gestore supporti virtuali” sezione Immagini CD/DVD. Qui premiamo il tasto Aggiungi e indichiamo dove abbiamo salvato il file .iso della nostra Ubuntu server.
Rimane solo da modificare il comportamento della scheda di rete, dalle proprietà della macchina virtuale, scegliamo “Rete” quindi nel menu a tendina di “Connessa a” cambiamo il valore da “NAT” a “Scheda con bridge“, dove poco sotto assinceriamoci che la scheda di rete sia quella in uso nel nostro personal computer.
Avviamo la macchina virtuale, e partirà l’installazione di Ubuntu Server, che procederemo come meglio ci aggrada (non dimenticate di selezionare il pacchetto LAMP quando proposto nella lista software). Quando abbiamo ottenuto il prompt, al termine dell’installazione, dovremo procedere alla configurazione della scheda di rete. Se disponiamo di un server dhcp (ad esempio il router casalingo) possiamo anche saltare la configurazione, viceversa dobbiamo assegnare un IP statico e un gateway per raggiungere la macchina guest e affinchè questa esca su internet per reperire aggiornamenti o pacchetti aggiuntivi.
Risolto il problema della connettività passiamo ad installare le Virtual Box Guest Additions, che ci permetteranno non solo di migliorare le prestazioni della macchina virtuale, ma accedere anche alle “Cartelle Condivise” citate in precedenza.
Prima di fare ciò è necessario installare il pacchetto dkms come segue:
sudo apt-get install dkms
Ora possiamo caricare la iso vbox guest addition, dalla finestra dove appare la macchina virtuale, scegliere dal menu a tendina in alto “Dispositivi” quindi “Installa Guest Additions”. Con la ISO caricata sul CD-ROM occorre montarla sotto Linux come segue:
sudo mkdir /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
sudo sh ./VBoxLinuxAdditions-amd64.run
Effettuiamo uno shutdown ( sudo poweroff ) per dichiare la nostra “Cartella Condivisa”. Sotto le proprietà della macchina virtuale, cerchiamo la voce “Cartelle Condivise“, con il tasto aggiungi indicheremo una cartella già presente nel nostro Windows (se non esiste createla anticipatamente) e dichiariamo un nome. Nel nostro caso la cartella risiede sotto C:\lamp e la risorsa viene chiama lamp. Avviamo nuovamente la nostra macchina virtuale, e dalla shell facciamo un breve test per vedere che tutto funzioni. Nello specifico vogliamo condividere la cartella /var/www che è la root directory di Apache sulla cartella C:\lamp
sudo mount -t vboxsf lamp /var/www
ora provate da Windows a creare il file test.txt in C:\lamp. Effettuando dalla shell di Ubuntu un
cat /var/www/test.txt
dovreste vederne il contenuto. Proviamo il metodo inverso, ovvero proviamo a modificare il file test.txt dalla shell di linux con Vi o il vostro editor preferito, e in Windows devono apparire le modifiche. Se apriamo il browser e puntiamo all’ip della nostra macchina virtuale, dovremo vedere il browsing della directory /var/www con il file test.txt in bella mostra. Non resta che rendere permanente il mount sotto Ubuntu, cosicchè all’avvio la cartella sia sempre condivisa con la macchina host. Sotto la cartella /etc dovremo modificare i files modules e fstab, per cui prima faremo una prudenziale copia di backup come segue:
sudo cp /etc/modules /etc/modules.ori
sudo cp /etc/fstab /etc/fstab.ori
Con il nostro editor apriamo il file modules (ricordatevi di farlo da sudo, tipo: sudo vi /etc/modules ) e aggiungiamo alla fine del file la nuova riga vboxsf seguita da una nuova riga vboxadd.
Salvate e chiudete il file. Apriamo (da sudo) il file fstab, sempre sotto /etc aggiungiamo alla fine della lista (scrivetelo come segue, con rispettando gli spazi e tutto in minuscolo)
lamp /var/www vboxsf defaults 0 0
salvate ed uscite, dal prossimo riavvio avremo la cartella /var/www residente sul disco fisico C:\lamp in windows, dove sarà modificabile a piacere sia da Windows con il vostro ambiente di sviluppo, sia da Linux, il tutto senza aver mai trasferito nulla.