====== Laravel Homestead ====== ===== Introdução ===== O Laravel Homestead é uma máquina virtual construida com Vagrant ((https://www.vagrantup.com/)) 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.2((https://www.virtualbox.org/wiki/Downloads)), VMWare((https://www.vmware.com/)), Parallels((https://www.parallels.com/products/desktop/)) ou Hyper-V((https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v)) tanto quanto Vagrant((https://www.vagrantup.com/downloads.html)). 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