mar 01, 2016 0

Instalando e configurando Homestead

Eu tive um problema quando comecei a usar o Laravel nos hrefs e src da pasta public quando criava uma rota como Usuarios/create em ambiente localhost. Inicialmente eu utilizava o Laravel diretamente com apache fazendo com que a aplicação pudesse ser vista no navegador como localhost/<meu-projeto>/public. Em rotas e views com apenas um nível, não havia problema algum, eu apontava no href e no src normalmente. Quando me deparei com uma rota como a citada acima, os apontamentos saíam todos errados pois era como se o diretório base tivesse mudado (Ex no caso de Usuarios/create, eu deveria apontar o que estava em imagens dentro de public da seguinte maneira: ../imagens ao invés de somente imagens). O problema de fazer isso, é que para cada nível eu precisaria fazer um layout no blade diferente e isso geraria um trabalho maior. Foi então que resolvi usar o Homestead.

A documentação do Laravel me ajudou muito a instalar e configurar, mas algumas coisas não estavam totalmente escritas e por isso resolvi criar este post. Segue a documentação para o Homestead:

https://laravel.com/docs/5.1/homestead

Obs: Eu utilizo Linux como sistema operacional para desenvolvimento. Vamos lá, passo a passo:

1º Instalar VirtualBox e Vagrant

2º Após instalar os dois programas, executar o seguinte comando para adicionar a pasta do laravel ao vagrant

~$ vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead

Este comando irá fazer download e é um passo que pode demorar alguns minutos.

3º O próximo passo é configurar as chaves SSH. Para tal, caso não possua a aplicação instalada, pode executar este comando para instalar

~$ sudo apt-get install openssh-client

Caso já possua, basta aplicar o comando a seguir para configurar uma chave

~$ ssh-keygen -t rsa -C “your@email.com”

Ao executar, será pedido o nome do arquivo e configuração de senha. Aqui é onde tive problema, eu preciso mover o arquivo id_rsa e id_rsa.pub do diretório pessoal /Home/<seu-diretorio-inicial>/ para o diretório  ~/.ssh . Enquanto eu não fiz isso, minha máquina virtual não funcionou.

4º A documentação do Laravel mostra duas formas de configurar o Homestead, sendo uma de forma global e outra dentro do projeto. Eu tentei instalar do primeiro modo, mas tive muitas dificuldades, então acabei optando pela segunda opção, até porque no arquivo Homestead.yaml eu tive que configurar a pasta do projeto. Dessa forma, executei o seguinte comando dentro da pasta do projeto contendo Laravel

~$ composer require laravel/homestead –dev

Este comando instalará o Homestead dentro de seu projeto, com isso, precisamos gerar os arquivos Vagrantfile e Homestead.yaml. Para isso, executamos o seguinte comando:

~$ php vendor/bin/homestead make

5º Precisamos agora configurar o arquivo Homestead.yaml com nossos parâmetros locais. O arquivo conterá estas linhas que devem ser alteradas de acordo suas informações locais (Arquivo criado no diretório raíz de seu projeto).



ip: “192.168.10.10”  -> IP Local para acessá-lo
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub  ->Local onde está o arquivo pub (expliquei para colocá-lo na pasta ~/.ssh

keys:
– ~/.ssh/id_rsa ->Local onde está o arquivo pub (expliquei para colocá-lo na pasta ~/.ssh

folders:
– map: ~/Code ->Diretório de seu projeto
to: /home/vagrant/Code

sites:
– map: homestead.app
to: /home/vagrant/Code/Laravel/public ->Diretório de seu projeto / public


Uma informação importante neste passo é que o IP informado no arquivo acima deve ser também incluído no arquivo /etc/hosts da seguinte maneira:

192.168.10.10  homestead.app

6º O último passo é só para subir a máquina virtual com o comando abaixo que fará com que o endereço http://homestead.app esteja disponível com a aplicação.

~$ vagrant up

 

Bom, basicamente é isso, todas as dificuldades que eu tive estão resumidas sob a tentativa de minimizar os erros. Se tiverem alguma dúvida ou correção, enfim, podem entrar em contato.

Até mais


 

Comments are closed.