Laravel Homestead

Mapear sites automaticamente no Laravel Homestead


This post is also available in: enEnglish

Bom, na verdade não é mapeamento automatico, mas eu tenho certeza que se você pesquisou por isso no Google, esse tutorial é o que você está procurando.

Eu trabalho com vários sites num único dia, e eu tenho que navegar, adicionar e deletá-los toda hora. É assim que um site padrão no Homestead se parece:

  • cliente1.local
  • cliente2.local
  • cliente3.local

No exemplo acima, cada vez que você precisar adicionar um novo site, você tem que criar uma pasta, manualmente adicioná-lo no Homestead.yaml, editar o arquivo hosts e etc.

Eu queria alguma coisa mais prática, então criei um único domínio para hospedar todos os meus sites, e ficou assim:

  • a.local/cliente1
  • a.local/cliente2
  • a.local/cliente3

Então, para criar um novo site, eu só crio a pasta pra ele, e está pronto. Outra vantagem é que posso rapidamente acessar o ambiente de desenvolvimento, pois a função de auto-complete do navegador não compete com o domínio de produção ou homologação.

Por exemplo: Digamos que eu tenho cliente.local como meu ambiente de desenvolvimento, e cliente1.com.br como ambiente de produção. Para acessar o desenvolvimento, eu teria que digitar o domínio inteiro até .local, para começar a diferenciá-los. Com essa configuração, fica mais fácil de fazer autocomplete.

O lado negativo é que você perde granularidade sobre configurações de PHP específicas para projetos específicos, mas se você quiser usar PHP 5.6 em algum site, você pode criar um mapeamento para ele como você faria normalmente. Os projetos genéricos são apenas uma conveniência.

Chega de papo, eis como fazer:

  1. Edite o Homestead.yaml e adicione essas configurações:
    folders:
     - map: C:\projetos
     to: /home/vagrant/projetos
    sites:
     - map: a.local
     to: /home/vagrant/projetos
    
    #ports: (opcional mas recomendado, para que você não tenha que digitar a.local:8000)
     # - send: 80
     # to: 80
    
    
  2. Rode vagrant up como você faria normalmente (Se puder, destrua ou reprovisione primeiro. Cuidado, você pode perder seus bancos de dados se fizer isso)
  3. Entre no SSH com vagrant ssh
  4. Se eleve para root com sudo -i
  5. Digite vi /etc/nginx/nginx.conf
  6. Adicione autoindex on; aqui:
    http {
    ##
    # Basic Settings
    ##
    autoindex on;
    }
  7. Rode service nginx restart
  8. Edite seu arquivo hosts em C:/Windows/System32/drivers/etc/hosts e adicione esta linha:
    192.168.10.10 a.local
  9. Acesse http://a.local no seu navegador, clique no projeto que você precisa e comece a trabalhar! 🙂

Homestead multiple sites


Tag: , ,