Tabela de conteúdos
Laravel Homestead
Introdução
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 | |
Instalação
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.
Instalação do Homestead Vagrant Box
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.
Instalação do Homestead
É 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
Configurando o Homestead
Definindo o provedor
A chave provider indica qual dos provedores Vagrant deve ser usando: virtualbox, vmware_fusion, vmware_workstation, parallels ou hyperv.
provider: virtualbox
Configurando Pastas Compartilhadas
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
Configurando Sites Nginx
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.
O arquivo Hosts
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
Iniciando o Vagrant Box
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.
Instalação por Projeto
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
Referências
Laravel Homestead (Laravel 5.6). Disponível em: https://laravel.com/docs/5.6/homestead. Acessado em: 25/04/2018
