De repente, fico teimoso porque meu subdomínio no localhost não está funcionando. Meu /etc/hosts
arquivo está assim:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 develop2win.de
127.0.0.1 develop2win.de
127.0.0.1 alomvar.localhost
Colocar todos os nomes de host de um IP em uma linha assim também não funciona:
127.0.0.1 localhost alomvar.localhost develop2win.de www.develop2win.de
Também reiniciei o resolvedor DNS apropriado para OS X 10.9 Mavericks com o seguinte comando:
dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Mas a emissão nslookup alomvar.localhost
no terminal produz o seguinte:
Server: 192.168.178.1
Address: 192.168.178.1#53
** server can't find alomvar.localhost: NXDOMAIN
Esse é o IP do roteador na minha rede local. Parece que o arquivo localhost hosts foi ignorado para resolução neste caso. Antes que o processo develop2win.de
fosse resolvido com sucesso e apontado para um host virtual Apache local. Mas agora nem isso funciona mais, mesmo erro acima (WTF?). No entanto, procurar simples localhost
ainda funciona bem:
Server: 192.168.178.1
Address: 192.168.178.1#53
Name: localhost
Address: 127.0.0.1
Atualização 1: Também reiniciei, sem nenhuma alteração. Parece que as consultas DNS não são resolvidas localmente, mas sim enviadas para o meu roteador.
o que estou perdendo? Alguém tentou configurar um subdomínio para localhost no OS X Mavericks? Não se trata nem do Apache, apenas da questão do DNS.
Aqui está umcaptura de tela da minha configuração de DNS nas preferências do sistema, por falar nisso. Como ainda não tenho reputação suficiente para incorporar imagens, este é um link para um site externo.
Atualização 2: Realizei verificações host
e ping
comandos no terminal, como dave_thompson_085 apontou. Para localhost funciona bem:
$ host localhost
localhost has address 127.0.0.1
Mas para o subdomínio não:
$ host alomvar.localhost
Host alomvar.localhost not found: 3(NXDOMAIN)
Ping localhost também funciona bem:
$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.048 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.078 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.085 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.076 ms
^C
--- localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.048/0.072/0.085/0.014 ms
E agora, irritantemente, funciona também para o subdomínio:
$ ping alomvar.localhost
PING alomvar.localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.091 ms
^C
--- alomvar.localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.039/0.062/0.091/0.022 ms
Como posso fazer ping sem problemas, mas não resolver o subdomínio? Aparentemente deveria funcionar assim, quando vejo como outras pessoas fizeram isso na internet. Eu não sou um crack em relação a redes. Provavelmente quebrei algo além do que é diretamente necessário para configurar isso.
Também executei dig
no localhost e no subdomínio. A saída é bastante longa e acho que esta questão já está bastante confusa. Vereste ficheiropara saída de escavação.
Atualização 3: Ao desconectar meu Mac da rede (desativando o adaptador de rede Ethernet) dig
e host
também não conseguir procurar o host local.
Atualização 4: descobri que funciona nos navegadores para mostrar o host virtual Apache ouvindo o chamado host. Não é uma solução para o problema, mas uma circunstância com a qual posso conviver e trabalhar. No entanto, ainda estou interessado em resolver o problema. Se alguém tiver mais alguma ideia, me diga.
Responder1
dig
, host
e nslookup
todos ignoram o resolvedor de nomes do sistema e consultam o DNS diretamente. Assim, eles não verão nomes definidos em /etc/hosts (a menos que estejamtambémdefinido no serviço DNS), ou qualquer nome .local mDNS (também conhecido como Bonjour), ou entradas de computador em serviços de diretório, ou...
Se você quiser ver o que o resolvedor do sistema vê, a melhor ferramenta é dscacheutil
. Infelizmente, sua sintaxe é um tanto desajeitada ( dscacheutil -q host -a name alomvar.localhost
), então geralmente é mais rápido usar algo como ping
o resolvedor de nomes do sistema. Mas se você quiser detalhes completos (por exemplo, se um nome resolve vários endereços), dscacheutil
é o caminho a seguir.