Ambiente de desenvolvimento do Laravel com Vagrant

vagrant_laravel-1_abertura

Esta é uma configuração do Vagrant que preparei para automatizar a criação de um ambiente de desenvolvimento do Laravel em uma máquina virtual rodando a versão 17.10 do Ubuntu (esta versão só tem em 64 bit), com PHP 7.1 e os demais arquivos necessários para o framework já instaladas.

E já que as dependências não estavam assim tão óbvias resolvi disponibilizá-lo junto com os demais arquivos.

Ao todo é um Vagrantfile com três scripts em Bash e é possível baixá-los de uma vez dentro de arquivo ZIP ou então usando o Git para clonar o repositório.


#!/usr/bin/env bash
LARAVEL=~/.config/composer/vendor/laravel/installer/laravel
composer global require laravel/installer
if [[ -f ${LARAVEL} ]]; then
[[ ! -d ~/bin ]] && mkdir ~/bin
[[ -f laravel ]] && rm -f ~/bin/laravel
ln -sf ${LARAVEL} ~/bin
exit 0
fi


#!/usr/bin/env bash
apt-get update &&\
apt-get –yes install composer php7.1 php7.1-bz2 php7.1-mbstring php7.1-zip php-fdomdocument

view raw

php7_install.sh

hosted with ❤ by GitHub


#!/usr/bin/env bash
apt-get update &&\
apt-get –yes dist-upgrade &&\
apt-get –yes –purge autoremove


# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/artful64"
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "–memory", "512"]
vb.customize ["modifyvm", :id, "–cpus", "2"]
end
config.vm.network "forwarded_port", guest: 8000, host: 8000
config.vm.provision "shell", path:"./software_update.sh"
config.vm.provision "shell", path:"./php7_install.sh"
config.vm.provision "shell", path:"./laravel_install.sh", privileged:false
end

view raw

Vagrantfile

hosted with ❤ by GitHub

Instruções — para ajudar o que deve ser feito na máquina física está em laranja e na máquina virtual em azul:

  1. Crie um novo diretório e copie lá todos os arquivos acima;
  2. Inicie a máquina virtual usando vagrant up e aguarde a configuração finalizar;
  3. Acesse-a com vagrant ssh e vá para o diretório “/vagrant” — cd /vagrant — que é o diretório compartilhado entre as máquinas física e a virtual;
  4. Crie seu novo projeto com laravel new nome_do_projeto e aguarde — na primeira execução alguns arquivos serão baixados, nas seguintes ele usará o cache;
  5. Entre no diretório do novo projeto e inicie o servidor de desenvolvimento HTTP com php artisan serve --host=0.0.0.0 — acessível na máquina física em http://localhost:8000/ e
  6. Na máquina física, abra seu editor de textos ou ambiente de desenvolvimento!

Passo opcional a ser realizado entre os itens 5 e 6 : dentro do diretório do projeto faça git init && git add --all && git commit -m "primeiro commit" — a criação do projeto já contempla o “.gitignore” mas não se esqueça de configurar o git antes.

E para agilizar use vagrant suspend e vagrant resume para, respectivamente, pausar e restaurar a máquina virtual.