Como configurar o arquivo de hosts para o ambiente local?

1

Estou tentando criar subdomínios no meu localhost e estou fora do meu território ... Estou executando o MAMP no meu Mac OS X e pensei / acho que tive / tive que fazer o seguinte:

(Supondo que eu queira criar me.localhost.com e you.localhost.com)

(1) Editar / private / etc / hosts

Neste momento, parece assim:

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

Então, apenas faço:

127.0.0.1       localhost
127.0.0.1       me.localhost.com
127.0.0.1       you.localhost.com
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

(2) Estou assumindo que não preciso mexer no DNS porque é local? Então, o arquivo hosts deve ser suficiente?

(3) E então, eu preciso editar meu arquivo httpd.conf para incluir hosts virtuais? Eu tentei isso, mas não está pegando ...

NameVirtualHost *

<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs"
ServerName localhost
</VirtualHost>

<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs/me.localhost.com"
ServerName me.localhost.com
</VirtualHost>

<VirtualHost *>
DocumentRoot "/Applications/MAMP/htdocs/you.localhost.com"
ServerName you.localhost.com
</VirtualHost>

Não tenho certeza se estou muito fora da base aqui ... Ajuda é muito apreciada!

    
por Zoredache 31.01.2010 / 16:20

3 respostas

1

Para resolução de nomes locais:

Você precisa do site localhost.com? No meu ambiente:

$ vi /etc/hosts

127.0.0.1       localhost
127.0.0.1       box1 box2 box3

$ ping box1

retorna "127.0.0.1" muito bem.

No navegador, eu também posso resolver o link , link , e assim em.

Em 10.5, 10.6, pelo menos, posso confirmar que o OSX não deve sobrescrever seu / etc / hosts, o que foi uma pergunta da resposta anterior.

Para o Apache, para cada novo host virtual, adicione:

<VirtualHost *:80>

ServerName box1

DocumentRoot /full/path/to/documentroot/

...[etc]

</VirtualHost>

Como seu navegador resolverá apropriadamente 'box1' como 127.0.0.1, sua solicitação será roteada para a caixa local, onde o apache lerá o cabeçalho e verá que ele foi destinado a 'box1' e usará o host virtual correspondente .

Alternativamente, você também pode usar uma das ferramentas (muitas?) para automatizar isso para você, como (eu não sou afiliado a isso, apenas pesquisei rapidamente ao tentar encontrar um exemplo diferente em que eu estava pensando: link )

    
por 31.01.2010 / 21:30
1

Note que todos os aliases para 127.0.0.1 devem ser especificados em uma única linha ou você obterá resultados estranhos (no Linux, pelo menos).

127.0.0.1 localhost me.localhost.com you.localhost.com
    
por 23.08.2011 / 23:19
0

VirtualHost obtém o nome do host virtual que você deseja definir. <VirtualHost *> define o padrão coletor. Então, isso deve ser

<VirtualHost me.localhost.com>

(E eu espero que você perceba que me.localhost.com é, estritamente falando, uma violação do namespace TwoCows e completamente diferente de me.localhost .)

Não tenho certeza se / com que frequência o OS X sobrescreve /etc/hosts . Pode ser necessário trabalhar com o Open Directory - mas, como acabei de perceber, a man page para isso ( man DirectoryService) in Snow Leopard points to a non-existing utility (/Applications/Utilities/Directory Utility.app ). Ou seja, você precisaria usar dscl e, provavelmente, ir para / Local / Default / Hosts e adicionar suas entradas lá.

    
por 31.01.2010 / 17:26