Come installare un server web su Vagrant

Chi si avvicina al mondo della programmazione web, a volte trova molto difficile configurare la propria postazione di lavoro. Installare un server web, configurarlo e gestirlo è un’operazione semplice per alcuni ma estremamente complessa per altri. Per chi lavora con PHP sopratutto su molti progetti che necessitano configurazioni molto diverse tra loro, soluzioni come MAMP, XAMPP, WAMPP risultano ormai obsolete e limitate.

vagrant-apache

Dopo aver letto Cos’è vagrant e come si usa, diventa quasi naturale pensare ad una macchina virtuale che contenga un server web. Se poi qualcuno ha già scritto il file di configurazione e il file di provisioning il processo diventa estremamente semplice.

Dove trovare i sorgenti

Sul mio GitHub troverete il file di configurazione per Vagrant. Come potete notare oltre al Vagrantfile troverete il file di provisioning (bootstrap.sh) che permette di configurare automaticamente la virtual machine.

Come installare un server web su Vagrant

Avviare il proprio server diventa estremamente semplice con Vagrant. Ecco i passi da seguire.

  1. Scaricare i sorgenti da git. Potete farlo direttamente dal sito oppure usando il terminale
  2. Posizionarvi nella directory vagrant-apache e avviare Vagrant
  3. Attendere che vagrant abbia completato l’installazione e la configurazione del web server e visitare il sito devbox.crizza.dev

Perché funziona

I più curiosi si chiederanno perché il processo è così semplice. La risposta la troviamo all’interno del file di configurazione che risulta leggermente diverso da quello descritto nell’articolo Cos’è vagrant e come si usa. Vediamone i dettagli.

  1. Vagrant ed i plugin

    Vagrant è dotato di molte caratteristiche pronte all’uso ed i plugin permettono di aggiungerne di nuove. Sul sito ufficiale è disponibile una guida su come svilupparne di nuovi anche se esiste già una lista abbastanza completa  sui plugin maggiormente utilizzati. Tra i plugin più utili troviamo vagrant-hostmanager che permette di configurare il proprio PC in modo da “trovare” l’indirizzo web della nostra virtual machine piuttosto che utilizzare l’indirizzo IP.
    Il codice seguente permette a Vagrant di scaricare ed installare il plugin qualora non fosse presente nel sistema.

    Per indicare quale indirizzo collegare alla nostra macchina virtuale basta aggiungere:

  2. Provisioning file

    Il provisioning permette a Vagrant di personalizzare, installanre e configurare software all’interno della virtual machine. Il codice responsabile dell’esecuzione del file di provisioning è descritto all’interno del Vagrantfile.

    Il file bootstrap.sh è un semplice file bash che viene lanciato all’interno della VM dopo la sua inizializzazione ed esegue i comandi che permettono di installare apache ed abilitare php5.

  3. Apache e la Shared Folder

    La shared folder di Vagrant

    permette di collegare la cartella directory corrente della macchina host, il nostro PC o MAC per intenderci, alla directory /vagrant della nostra macchina virtuale.

    Se a quest’ultima creiamo un ulteriore collegamento alla directory di apache all’interno di allora ci troveremo in un situazione in cui lavorare sul nostro pc equivale a lavorare sui file del nostro web server.
    Screen Shot 2016-05-01 at 22.57.16

In conclusione

Lavorare con Vagrant permette veramente di fare grandi cose. Su Github esistono numerosi progetti interessanti che utilizzano Vagrant come supporto per lo sviluppo e distribuzione di software. Conoscerne le basi e le caratteristiche permette di migliorare la qualità e la gestione dei progetti.


2 Commenti

  1. Vash83

    Grazie dell’articolo. io sono sysadmin, ma non mi e’ ancora chiara una cosa su Vagrant. Quando creo la nuova box, essa viene scaricata da internet? Viene scaricata un’immagine? O per caso viene fatta un’installazione unattended del SO?Grazie.

    Risposta
    1. Christian Rizza (Autore Post)

      Ciao e grazie per il commento. Con vagrant bisogna fare la distinzione tra box, immagine e virtual machine.

      La box non è altro che l’immagine installata di un particolare SO e che può essere eseguita su Vagrant. Credo sia il concetto di unattended del SO da te mensionato.

      Vagrant durante l’inizializzazione scarica la box da internet e la utilizza per creare la virual machine per virtualbox, ovviamente mantenendone una copia in locale per installazioni future. Ti consiglio di leggere qui e di dare uno sguardo alle vagrant box publiche

      Risposta

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *