Configurando o VirtualHost para o servidor MAMP?

1

Problema

Eu preciso configurar alguns VirtualHost registros para um servidor MAMP que eu instalei no meu Mac. Em suma, em vez de usar http://localhost:8888/dkbtherapy/index.html , quero usar http://l.dkbtherapy.com . No entanto, com a configuração que fiz, não funciona.

Configuração do VirtualHost

Na pasta /Applications/MAMP/conf/Apache , modifiquei o arquivo httpd.conf e adicionei essa configuração VirtualHost :

<VirtualHost *:8888>
  DocumentRoot /Applications/MAMP/htdocs/dkbtherapy
  ServerName l.dkbtherapy.com
</VirtualHost>

de modo que deve configurar o roteamento para (eu pensei) . Então eu modifiquei meu arquivo hosts e adicionei isto:

127.0.0.1:8888  l.dkbtherapy.com

mas quando digito l.dkbtherapy.com no Safari, recebo:

Safari can't find the server.

Agora, reiniciei o servidor Apache depois de fazer as alterações, mas não reiniciei meu Mac. Embora eu não ache que preciso reiniciar meu Mac. O que eu perdi na configuração acima?

OBSERVAÇÃO: depois de fazer as alterações http://localhost:8888/dkbtherapy/index.html também não funciona, recebo um 404 retornado com esta mensagem:

The requested URL /dkbtherapy/index.php was not found on this server.

EDITAR: depois de olhar para minha caixa do Windows, onde eu configurei isso e está funcionando, notei que perdi uma linha de configuração - ele apareceu - então eu adicionei isso ao da Mac também:

NameVirtualHost *:8888

EDITAR EM RELAÇÃO AO http://localhost:8888/dkbtherapy/index.html : quando olho para o log de erros do Apache, vejo esse erro quando tento navegar para esse caminho:

[Fri May 31 11:23:41 2013] [error] [client ::1] File does not exist: /Applications/MAMP/htdocs/dkbtherapy/dkbtherapy

então, por algum motivo, ele acha que dkbtherapy é a raiz absoluta para o servidor aparece - como eu gerenciei isso?

    
por Mike Perrenoud 31.05.2013 / 16:53

1 resposta

1

Bem, você definiu /Applications/MAMP/htdocs/dkbtherapy como o DocumentRoot para o host virtual, o que significa que esse diretório mapeia para a URL 127.0.0.1:8888/ - assim, quando você visita 127.0.0.1:8888/dkbtherapy/index.html , o Apache mapeia isso para /Applications/MAMP/htdocs/dkbtherapy/dkbtherapy/index.html , que não existe, assim o erro que você vê no log.

Você tem duas opções. Uma é alterar o valor DocumentRoot para /Applications/MAMP/htdocs/ , o que fará com que a URL .../dkbtherapy aponte para onde você deseja.

A outra opção, e na minha opinião a preferível, seria simplesmente remover /dkbtherapy do seu URL e visitar, por exemplo, http://127.0.0.1:8888/index.html em vez disso. (Eu digo que é preferível porque parece provável que o site, quando em produção, tenha seu próprio nome de domínio, e suas URLs não precisem conter /dkbtherapy/ . Se for esse o caso, e dado que é sempre preferível para o desenvolvimento Para que o ambiente seja o mais próximo possível do ambiente de produção, a segunda opção se aproxima da produção desse resultado e, portanto, é melhor que a primeira.)

Uma outra observação sobre seu arquivo /etc/hosts : você não pode especificar um número de porta nesse arquivo, apenas um endereço IP. O erro "Host não encontrado" ocorre porque a pilha TCP não consegue analisar a entrada e, portanto, ignora-lo. O seguinte irá funcionar:

127.0.0.1      l.dkbtherapy.com

Com essa alteração, bem como a alteração descrita anteriormente no DocumentRoot, http://l.dkbtherapy.com:8888 deve alcançar a página de índice do seu site.

(Além disso, você provavelmente não precisa da linha NameVirtualHost, a menos que você esteja realmente usando hospedagem virtual baseada em nome, o que não parece ser o caso agora. Provavelmente não vai atrapalhar nada deixá-la lá até que você consiga realmente configurar hosts virtuais baseados em nome, mas removê-lo não deve fazer diferença em como o Apache também está se comportando.)

    
por 31.05.2013 / 18:03