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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
apt-get update &&\ | |
apt-get –yes dist-upgrade &&\ | |
apt-get –yes –purge autoremove |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- 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 |
Instruções — para ajudar o que deve ser feito na máquina física está em laranja e na máquina virtual em azul:
- Crie um novo diretório e copie lá todos os arquivos acima;
- Inicie a máquina virtual usando vagrant up e aguarde a configuração finalizar;
- 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;
- 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;
- 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
- 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.