Close

19/01/2017

Configurando virtual hosts no MAMP

Se você, assim como eu, não é nenhum especialista em configuração de servidores não se assuste! Sabemos que uma das formas mais fáceis para criar e administrar domínios virtuais é através do MAMP Pro, porém requer a compra de uma licença.

Supondo que você queira criar virtual hosts em sua máquina para desenvolvimento de projetos diversos, execute os passos a seguir:

Criando virtual hosts pela primeira vez

  • Abra o Terminal – já que estamos falando de MAMP, automaticamente nos restringimos ao macOS – e execute o comando abaixo para abrir o arquivo hosts (será solicitada a senha de administrador da máquina para executa-lo):

$ sudo nano /etc/hosts

  • Adicionar a seguinte linha no final do documento (trocando projeto.dev para qualquer domínio de sua preferência), redirecionando o virtual host para o IP da sua própria máquina:

127.0.0.1 projeto.dev

  • Ao terminar a edição, apertar CTRL+X para fechar o arquivo, confirmar digitando Y e depois ENTER para fechar;
  • Agora vamos habilitar a possibilidade de utilizar virtual hosts com o MAMP. Abra o arquivo httpd.conf no caminho Applications/MAMP/conf/apache/httpd.conf e procure pelas linhas abaixo (provavelmente sejam 524 e 525):

# Virtual Hosts
# Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

  • Retire o caractere # do início da segunda linha acima, assim o MAMP executará a configuração para domínios virtuais sempre que iniciar um servidor, ficando assim:

# Virtual Hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

  • Abra o arquivo listado no caminho anterior, pois nele definiremos os virtual hosts a serem interpretados pelo MAMP. Para isso, abra o caminho Applications/MAMP/conf/apache/extra/httpd-vhosts.conf.
  • No final do arquivo haverão dois exemplos de virtual hosts:
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/Applications/MAMP/Library/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/Applications/MAMP/Library/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error_log"
    CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
  • Edite os dois exemplos para que fiquem da forma abaixo:
<VirtualHost *:80>
    DocumentRoot /Applications/MAMP/htdocs
    ServerName localhost
</VirtualHost>
           
<VirtualHost *:80>
    DocumentRoot "/Users/username/Sites/projeto"
    ServerName projeto.dev
</VirtualHost>
  • Editando desta forma, você define que o domínio virtual projeto.dev direciona para a pasta /Users/username/Sites/projeto. Mude esses parâmetros (DocumentRoot e ServerName) a vontade. Sempre que precisar criar um novo domínio virtual, é só replicar as linhas que começam com <VirtualHost *:80> até </VirtualHost>.
  • Depois disso abra o MAMP, entre nas preferências e edite a porta do Apache para 80 conforme print abaixo:

Obs: já vi tutoriais em que este último passo não está listado, mas era o que faltava para funcionar em minha máquina.

Pronto! Seu domínio virtual está criado e sua máquina preparada para reconhece-lo. Importante ressaltar que, a cada edição, deve-se reiniciar o servidor no MAMP para que as alterações tenham efeito.

Caso precise criar novos domínios no futuro

Para adicionar novos domínios virtuais no futuro, certamente você não precisa repetir todos estes passos acima. Veja como fica simples:

  • Edite o arquivo /etc/hosts da forma descrita anteriormente;
  • Abra o arquivo Applications/MAMP/conf/apache/httpd.conf e adicione um novo bloco para definir o novo domínio ao MAMP.

Com estes passos realizados, é só reiniciar o servidor e tudo funcionará sem problemas!