O Laravel Homestead é uma máquina virtual construida com Vagrant 1) que oferece um ambiente de desenvolvimento PHP com um servidor web.
Homestead é executado em qualquer sistema Windows, Mac ou Linux, e inclui o servidor Nginx, PHP 7.2, PHP 7.1, PHP 7.0, PHP 5.6, MySQL, PostgreSQL, Redis, Memcached, Node e outras necessárias para se desenvolver aplicações Laravel.
Usado no Windows, é necessária a habilitação da virtualização de hardware (VT-x). Normalmente essa pode ser habilitada pelo BIOS. Em se usando Hyper-V em um sistema UEFI, deve-se adicionalmente desabilitar o Hyper-V para acessar o VT-x.
Softwares Inclusos | ||
---|---|---|
Ubuntu 16.04 | Git | PHP 7.2 |
PHP 7.1 | PHP 7.0 | PHP 5.6 |
Nginx | Apache (Optional) | MySQL |
MariaDB (Optional) | Sqlite3 | PostgreSQL |
Composer | Node (With Yarn, Bower, Grunt, and Gulp) | Redis |
Memcached | Beanstalkd | Mailhog |
Elasticsearch (Optional) | ngrok | wp-cli |
Zend Z-Ray | Go |
Antes de executar o ambiente Homestead, deve-se instalar o VirtualBox 5.22), VMWare3), Parallels4) ou Hyper-V5) tanto quanto Vagrant6). Recomenda-se o uso da ferramenta VirtualBox.
Uma vez com uma das ferramentas instaladas, e o Vagrant, deve-se adicionar a 'box' laravel/homestead na instalação Vagrant. Para isso, usa-se o comando a seguir no terminal. Esse realizará o download da 'box'.
vagrant box add laravel/homestead
Se o comando falhar, certifique-se de que a instalação Vagrant esteja ativa.
É possível instalar o Homestead clonando o repositório git. Recomenda-se clonar o repositório na pasta Homestead do diretório “home” da estação de trabalho, assim a box servirá como host para todos os projetos Laravel da estação.
O clone pode ser feito através do comando a seguir:
git clone https://github.com/laravel/homestead.git ~/Homestead
Deve-se verificar a versão do projeto, pois o branch master pode não estar estável. Para isso, consulta-se https://github.com/laravel/homestead/releases.
cd ~/Homestead
git checkout v7.4.0
Uma vez com o projeto clonado, deve-se executar o comando bash init.sh
do diretório Homestead para criar o arquivo de configuração Homestead.yaml
.
Mac / Linux
bash init.sh
Windows
init.bat
A chave provider
indica qual dos provedores Vagrant deve ser usando: virtualbox
, vmware_fusion
, vmware_workstation
, parallels
ou hyperv
.
provider: virtualbox
A propriedade folders
lista todos os diretórios para compartilhar com o ambiente Homestead. Se os arquivos dessas pastas forem alterados, eles serão sincronizados entre a máquina local e o ambiente Homestead. Pode-se configurar tantas pastas compartilhadas quanto necessário.
folders:
- map: ~/code
to: /home/vagrant/code
A propriedade sites
permite o fácil mapeamento de um “domínio” para uma pastas no ambiente Homestead. Pode-se configurar tantos sites quanto necessário.
sites:
- map: homestead.test
to: /home/vagrant/code/Laravel/public
Se mudanças foram realizadas nas propriedades sites, deve-se reexecutar vagrant reload –provision
para atualizar as configurações Nginx na máquina virtual.
Deve-se adicionar os domínios dos sites Nginx no arquivo hosts
na estação de trabalho. O arquivo hosts
irá redirecionar as requisições aos sites Homestead dentro da máquina Homestead. No Mac e no Linux, este arquivo está localizado em /etc/hosts
. No Windows, está localizado em C:\Windows\System32\drivers\etc\hosts
. A linha adicionada neste arquivo deve parecer com:
192.168.10.10 homestead.test
Uma vez editado o Hamestead.yaml
, executa-se vagrant up
no diretório Homestead. Vagrant irá iniciar a máquina virtual e automaticamente configurar as pastas compartilhadas e sites Nginx.
Após a instalação do Homestead globalmente, e de compartilhar o Homestead Box entre todos os projeto, deve-se configurar uma instância Homestead para cada projeto gerenciado.
Para instalar o Homestead diretamente no projeto, pode-se usar o composer:
composer require laravel/homestead –dev
Ao instalar o Homestead em um projeto, usa-se o comando make
para gerar os arquivos Vagrantfile
e Homestead.yaml
na raiz do projeto. O comando make
irá gerar automaticamente as diretivas de sites
e folders
no arquivo Homestead.yaml
.
Mac/Linux:
php vendor/bin/homestead make
Windows:
vendor\\bin\\homestead make
Laravel Homestead (Laravel 5.6). Disponível em: https://laravel.com/docs/5.6/homestead. Acessado em: 25/04/2018