homestead-virtual-box

Como instalar a máquina virtual Laravel Homestead

Para iniciar a jornada de aprendizado do Laravel vamos aprender como instalar a máquina virtual Laravel Homestead.

Desta forma teremos um ambiente de desenvolvimento adequado com um servidor web e o PHP além de algumas de suas extensões, também o Composer e outros softwares como o Node que serão necessários à medida que formos avançando no aprendizado.

Caso você já trabalhe desenvolvendo em PHP provavelmente já possui um ambiente com a maioria dos requisitos necessários e não precisará instalar a máquina virtual Laravel Homestead. Consulte neste post os requisitos necessários para utilizar o Laravel.

Este conteúdo está disponível também em meu LIVRO GRATUITO LARAVEL INICANTES confira.

Preparação do ambiente

A tarefa de preparar um computador de forma a que ele se torne um ambiente de desenvolvimento Laravel pode ser feita de várias formas.

Uma opção seria usar um pacote LAMP, WAMP, XAMP, ou uma máquina virtual somente com o sistema operacional e instalar todo o resto (PHP, servidor web, Composer, Node etc.) por conta própria.

Os mantenedores do Laravel, com a mentalidade de facilitar ao máximo e tornar o desenvolvimento o mais agradável possível disponibilizam uma máquina virtual que já vem com tudo o que você vai precisar para começar a desenvolver usando este framework.



A máquina virtual Homestead

                 Creio que as máquinas virtuais não sejam nenhuma novidade para você, a maioria dos desenvolvedores já as utiliza em seu dia a dia para várias tarefas, entre elas testes de sistemas.

                A Laravel Homestead é uma “caixa” oficial no padrão Vagrant que fornece um pacote pré instalado e configurado com tudo o que será necessário para iniciar com o framework. Desta forma eliminando a necessidade de PHP, servidor web, e outros softwares instalados em sua máquina local.

                É possível fazer uso desta máquina virtual em sistemas Windows, Mac e Linux. Porém, neste texto iremos assumir que você está fazendo a instalação em um sistema Windows.

Instalando os programas necessários

                Antes de instalar a máquina virtual Laravel Homestead será necessário termos instalados o Virtual Box 6.x e a versão mais recente do Vagrant.

                Também é altamente recomendável que você instale o GIT para clonar o projeto GitHub da máquina Homestead.

É possível fazer o download diretamente do repositório sem necessidade de instalar o GIT, porém hoje em dia o uso deste programa é quase obrigatório para o desenvolvedor de software, de forma que quanto antes você começar a usá-lo melhor.

                Vamos começar instalando estes três softwares, para isso faça o download e instale os mesmos usando os links abaixo:

Nota: obviamente no caso de você já possuir uma versão do Virtual Box 6.x não será necessário instalar novamente. Porém caso sua versão seja inferior é recomendado substituir a antiga pela versão 6.x.

Instalando a Laravel Homestead

                Após a instalação dos programas abra uma janela com um shell, prompt de comando, terminal etc., e execute o seguinte comando:

vagrant box add laravel/Homestead

                Selecione como provedor o virtualbox, que neste caso é a opção 3, veja na tela abaixo:

Instalação da Laravel Hometead
Execução do comando vagrant box add laravel/homestead

Nota: caso ocorra o erro:

URL: ["https://vagrantcloud.com/laravel/homestead"]  Error: SSL certificate problem: self signed certificate in certificate chain 

Provavelmente é devido a uma incompatibilidade conhecida com alguns antivírus, em especial o Kaspersky. Para prosseguir a instalação do Homestead tente pausar temporariamente o antivírus e reativá-lo após ter concluído esta operação.

Caso, mesmo desativando o anti vírus, o problema persista adicione o parâmetro –insecure, conforme a linha de comando abaixo:

vagrant box add --insecure laravel/Homestead

Fique avisado de que o download da Laravel Homestead pode demorar bastante, então, é hora de ter um pouco de paciência e aproveitar para relaxar.
Quando o processo estiver concluído e o prompt estiver disponível novamente digite na sequência os seguinte comandos:

git clone https://github.com/laravel/homestead.git Homestead
cd Homestead
init.bat
mkdir C:\Homestead\projeto01

                Ao final desta etapa, caso tudo tenha corrido bem, você terá uma máquina Laravel Homestead praticamente pronta para ser executada, faltando somente algumas configurações que iremos fazer no próximo tópico.

                Além disso, criamos a pasta C:\Homestead\projeto01 que será o local onde serão armazenados os arquivos de nosso primeiro projeto Laravel.




Configurando a instalação da máquina virtual Laravel Homestead

                Após a instalação será necessário configurar alguns parâmetros de operação da Laravel Homestead, todas as configurações serão feitas alterando campos no arquivo Homestead.yaml.

                Lembrando que estamos presumindo que você está um sistema Windows, de forma que agora em seu perfil de usuário deve existir uma pasta Homestead e dentro dela o arquivo Homestead.yaml.

Nota: O comando init.bat executa as configurações iniciais da máquina Homestead, criando o arquivo Homestead.yaml que iremos editar nesta seção.

Caso este arquivo não exista, faça uma cópia do arquivo exemplo usando o comando abaixo:

copy Homestead.yaml.example Homestead.yaml

                Use o seu editor preferido para alterar  o arquivo Homestead.yaml (%USERPROFILE%\Homestead\Homestead.yaml) fazendo as seguintes mudanças:

ip: "192.168.0.10"

 folders: 
  - map: C:\Homestead\projeto01 
  to: /home/vagrant/meu-site

 sites:  
    - map: "192.168.0.10"
 to: /home/vagrant/meu-site/public

Nota: Em alguns sistemas pode ocorrer um conflito de endereço que fará com que a máquina virtual não seja executada ou fique inacessível em sua rede. Se for o seu caso tente usar um endereço IP diferente do informado acima.

Iniciando a máquina Homestead

                Feita a alteração no arquivo de configuração do Laravel Homestead basta agora iniciar a máquina usando o comando abaixo:

vagrant up

Nota: para iniciar uma máquina que esteja em outra pasta será necessário saber o ID da mesma, usando o comando vagrant global-status e depois executar o vagrant up passando o ID como parâmetro. Veja na tela abaixo:

Iniciando a máquina Homestead
Iniciando a máquina Homestead

Troubleshooting – gerando chave SSH

No caso de não ser possível iniciar a máquina Homestead devido ao erro abaixo:

Check your Homestead.yaml (or Homestead.json) file, the path to your private key does not exist. 

Será necessário gerar uma chave SSH usando o seguinte comando: 

ssh-keygen -t rsa -C "seunome@homestead"

Este comando não existe nativamente no Windows, de forma que para executá-lo você deverá instalar o GIT para Windows e utilizar o aplicativo Git bash o qual suporte o comando ssh-keygen.

Após gerar as chaves verifique no arquivo Homestead.yaml se as propriedades authorize e keys estão indicando o caminho (path) correto para as chaves ssh recém criadas .

Criando o projeto Laravel

                Finalizando vamos criar um novo projeto Laravel usando os comandos abaixo:

vagrant ssh
laravel new meu-site

O primeiro comando abrirá um shell dentro da máquina Homestead, portanto, não estranhe a alteração na interface da linha de comandos.
O segundo será responsável pela criação do novo projeto Laravel.

Em seguida para testar a instalação basta apontar o browser para o endereço:

http://192.168.0.10

Tela inicial do site padrão após instalação do Laravel Homestead
Tela inicial do site padrão Laravel

A imagem acima é a tela inical do esqueleto de aplicativo padrão do Laravel, é a partir dela que iniciaremos o desenvolviemnto de nosso próprio web site.

Para acesar a aplicação devemos digitar no browser o endereço IP da máquina virtual que estiver definido no arquivo de configuração Homestead.yaml.



Comandos Vagrant

                Abaixo temos alguns comandos do Vagrant que serão úteis durante o desenvolvimento de nossas aplicações:

Comando Variação Função
vagrant -v   exibe a versão do Vagrant
vagrant halt   desliga a máquina virtual
vagrant up   liga a máquina virtual
  vagrant up <id> liga uma máquina que esteja em outra pasta
vagrant status   Exibe o status da máquina virtual
  vagrant global-status exibe os status e id de todas as máquinas disponíveis
vagrant ssh   cria uma seção de shell seguro que permite executar comandos na máquina virtual
  vagrant ssh
sudo shutdown now
por exemplo, uma outra forma de desligar a Homestead seria executar estes comandos
vagrant reload –provision   usado para recarregar a máquina virtual após alterações em seus arquivos de configuração

Para saber mais

Continue seu aprendizado sobre o Laravel lendo minha série de posts para iniciantes :
Tutorial instalação – Iniciando com o Laravel parte 1
Iniciando com Blade – Laravel tutorial parte2
Blade passando parâmetros – Laravel tutorial – parte3

Conheça também:
eBook chatbot usando Laravel Botman e Dialogflow
Vue.js no Laravel