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:

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