Unnikked - Esperienze personali in campo informatico

Come installare Laravel Homestead

Laravel Homestead è una box per Vagrant pre-configurata che fornisce un ambiente di sviluppo ideale senza richiedere l’installazione di PHP, HHVM, un web server e qualsiasi altro software sulla macchina locale.

Le box di Vagrant sono completamente usa e getta, se qualcosa va male è sempre possibile distruggere e ricreare la macchina virtuale.

Software incluso

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • Nginx
  • MySQL
  • Postgres
  • Node (Con Bower, Grunt e Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel Envoy
  • Fabric + HipChat Extension
  • Blackfire Profiler

Vagrant Box

Prima di eseguire l’ambiente Laravel Homestead bisogna installare VirtualBox e Vagrant.

Per aggiungere la box di Laravel Homestead:

vagrant box add laravel/homestead

Installare Laravel Homestead

Una volta che la box è stata aggiunta a Vagrant è possible installare lo strumento a riga di comando di Laravel Homestead tramite il comando composer global:

composer global require "laravel/homestead=~2.0"

Assicuriamoci di inserire il percorso della cartella ~/.composer/vendor/bin nel PATH di sistema in modo tale che l’eseguibile homestead sia trovato per l’esecuzione.

PATH=~/.composer/vendor/bin:$PATH

Una volta installato lo strumento a riga di comando è necessario eseguire il comando inizializzazione per creare il file di configurazione Homestead.yaml

homestead init

Il file Homestead.yaml viene posizionato nella cartella ~/.homestead. E’ possibile modificare tale file attraverso:

homestead edit

Configurazione del provider

La chiave provider nel file Homestead.yaml indica quale provider Vagrant deve usare: virtualbox o vmware_fusion.

provider: virtualbox

Configurazione della chiave SSH

Bisogna modificare il file Homestead.yaml per configurare il percorso alla chiave pubblica SSH così come le cartelle che si vogliano condividere tra la macchina principale e Homestead.

Se non si ha a disposizione una chiave SSH è possibile generare una coppia di chiavi SSH tramite:

ssh-keygen -t rsa -C "you@homestead"

Una volta configurata la chiave SSH bisogna specificare il percorso della chiave nella proprietà authorize.

Configurazione delle cartelle condivise

La proprietà folders del file Homestead.yaml elenca tutte le cartelle che si vogliono condividere con Laravel Homestead. Non appena i file contenuti in queste cartelle saranno sincronizzati tra la macchina locale e Laravel Homestead automaticamente.

Per abilitare NFS basta specificarlo nel file di configurazione come mostrato:

folders:
    - map: ~/Code
      to: /home/vagrant/Code
      type: "nfs"

Configurazione dei siti Nginx

La proprietà sites permette di associare facilmente un “dominio” ad una cartella nell’ambiente Homestead. Una configurazione di esempio è fornita nel file Homestead.yaml

Si può abilitare HHVM per quasiasi sito usando l’opzione hhvm:

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
      hhvm: true

Ogni sito sarà accessibile tramite HTTP attraverso la porta 8000 e HTTPS tramite la porta 44300.

Alias Bash

Per aggiungere alias bash alla box Homestead è necessario aggiungerli al file degli alias nella cartella ~/.homestead.

Avvio della box

Una volta configurato il file Homestead.yaml secondo le proprie preferenze è possibile usare homestead up per avviare la macchina virtuale e homestead ssh per accedervi in SSH.

Vagrant avvierà la macchina virtuale e configurerà le cartelle condivise e i siti Nginx automaticamente.

Per distruggere la macchina è necessario usare il domando vagrant destroy --force

Per far funzionare correttamente la macchina virtuale è necessario aggiungere al file <a href="guida-file-hosts-in-linux" title="Guida al file hosts in Linux">/etc/hosts</a> l’indirizzo ip della macchina virtuale:

192.168.10.10  homestead.app

L’indirizzo IP mostrato è quello impostato nel file Homestead.yaml. Una volta aggiunto il dominio al file hosts è possibile accedere al sito tramite il browser.

http://homestead.app