Quero configurar minha máquina de desenvolvimento local para que quaisquer solicitações *.local
sejam redirecionadas para localhost
. A idéia é que, ao desenvolver vários sites, posso adicionar vhosts ao Apache chamadossite1.local
, site2.local
etc, e tê-los todos determinação de localhost
, enquanto o Apache serve um site diferente em conformidade.
Estou no Windows XP.
Eu tentei adicionar
127.0.0.1 *.local
para o meu c:\windows\system32\drivers\etc\hosts
arquivo, também tentei:
127.0.0.1 .local
Nenhum dos quais parece funcionar.
Eu sei que posso configurá-los em diferentes números de porta, mas isso é uma dor, pois é difícil lembrar qual porta é qual.
Eu não quero ter que configurar um servidor DNS local ou qualquer coisa difícil, alguma sugestão?
Respostas:
O Proxy DNS acrílico (código aberto e gratuito) faz o trabalho. Ele cria um servidor DNS proxy (no seu próprio computador) com seu próprio arquivo hosts. O arquivo hosts aceita caracteres curinga.
Download do site oficial
http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home
Configurando o Proxy DNS Acrílico
Para configurar o Acrylic DNS Proxy, instale-o no link acima e vá para:
Adicione as seguintes linhas no final do arquivo:
Reinicie o serviço Proxy DNS acrílico:
Você também precisará ajustar sua configuração de DNS nas configurações da interface de rede:
Defina "Use o seguinte endereço do servidor DNS":
Se você combinar essa resposta com a resposta de jeremyasnyder (usando
VirtualDocumentRoot
), poderá configurar automaticamente domínios / hosts virtuais simplesmente criando um diretório.fonte
PrimaryServerAddress
na configuração (não no arquivo hosts) deve ser alterado do padrão8.8.8.8
para o que o host fornece. No VirtualBox, é isso10.0.2.3
.Para responder sua pergunta, você não pode usar caracteres curinga no arquivo hosts no Windows.
No entanto, se você quiser alterar apenas o arquivo hosts para fazer com que novos sites funcionem .... você pode configurar o seu Apache assim e não precisa continuar editando sua configuração:
http://postpostmodern.com/instructional/a-smarter-mamp/
Basicamente, um resumo rápido com base na minha configuração, adicione o seguinte ao seu arquivo apache.conf:
Isso me permite adicionar uma entrada como:
e, em seguida, crie o diretório c: \ xampp \ sites \ dev \ test e coloque os arquivos necessários lá e simplesmente funcione.
A outra opção é usar
<Directory>
tags no apache.conf e referenciar as páginas em http: // localhost / project / .fonte
Eu não acho que isso é possível.
De qualquer forma, você precisa modificar as entradas do apache virtualroot toda vez que adicionar um novo site e local, para que não seja um grande trabalho sincronizar o novo nome no arquivo vhost do Windows.
Atualização: verifique a próxima resposta e os comentários nesta resposta. Esta resposta tem 6 anos e não está mais correta.
fonte
ServerAlias *.mydomain.localhost
(*
sendo o código do idioma), para não precisar editar o httpd.conf toda vez que adicionar um novo idioma; mas você ainda precisa adicionar o subdomínio ao arquivo hosts, daí a relevância da pergunta acima.hosts
Para adicionar as ótimas sugestões já aqui, o XIP.IO é um servidor DNS curinga fantástico disponível publicamente.
(A capacidade de especificar endereços sem loopback é fantástica para testar sites em dispositivos iOS nos quais você não pode acessar um arquivo de hosts.)
Se você combinar isso com algumas das configurações do Apache mencionadas em outras respostas, poderá adicionar VirtualHosts com a configuração zero .
fonte
Encontrei uma postagem sobre Como usar o arquivo Hosts do Windows que também diz "Não são permitidos curingas".
No passado, acabei de adicionar entradas adicionais ao arquivo hosts, porque (como dito anteriormente), não é muito trabalho extra quando você já está editando o arquivo de configuração do apache.
fonte
Editar o arquivo hosts é menos trabalhoso quando você executa "ipconfig / flushdns" no prompt de comando do Windows, em vez de reiniciar o computador.
fonte
Você pode convencer o administrador da rede a configurar um domínio para você (por exemplo, 'evilpuppetmaster.hell') e ter o curinga lá para que tudo (* .evilpuppetmaster.hell ') seja resolvido para o seu IP
fonte
Temos esse trabalho usando DNS curinga em nosso servidor DNS local: adicione um
A
registro algo como*.local -> 127.0.0.1
Eu acho que as configurações de rede precisarão ter o sufixo de domínio escolhido na lista de pesquisa de sufixos de domínio para máquinas na rede; portanto, convém substituir
.local
o domínio interno da sua empresa (por exemplo.int
) e adicionar um subdomínio.localhost.int
para deixar claro para que serveO que
*.localhost.int
seria resolvido127.0.0.1
para todos na rede, e as configurações do arquivo de configuração para todos os desenvolvedores "simplesmente funcionariam" se os terminais encerrassem o subdomíniosite1.localhost.int
, por exemplo ,site2.localhost.int
este é o esquema que introduzimos.O dnsmasq também parece bom, mas ainda não o tentei: http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/
fonte
Eu escrevi um proxy DNS simples em Python. Ele lerá entradas curinga em / etc / hosts. Veja aqui: http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsproxy.py
Eu testei no Linux e Mac OS X, mas ainda não no Windows.
fonte
Você pode experimentar o AngryHosts , que ofereceu uma maneira de oferecer suporte a curingas e expressões regulares. Na verdade, é um software de gerenciamento e aprimoramento de arquivos de hosts.
Mais recursos podem ser vistos em http://angryhosts.com/features/
fonte
Estou usando o DNSChef para fazer isso.
https://thesprawl.org/projects/dnschef/
Você precisa baixar o aplicativo. No Linux ou Mac, você precisa de python para executá-lo. O Windows tem seu próprio exe.
Você deve criar um arquivo ini com suas entradas DNS, por exemplo
Em seguida, você deve iniciar o aplicativo dns com privilégios de administrador
ou no windows
Finalmente, você precisa configurar como seu único DNS o seu ambiente host local (rede, interface, dns ou similar ou no linux /etc/resolv.conf).
É isso aí
fonte
Eu criei essa ferramenta simples para substituir os hosts. Expressões regulares são suportadas. https://github.com/stackia/DNSAgent
Uma configuração de amostra:
fonte
Não consegui encontrar uma proibição por escrito, mas, por convenção, o arquivo de hosts do Windows segue de perto o arquivo de hosts UNIX e você não pode colocar referências de nome curinga no nome do host.
Se você ler a página de manual, ela diz:
Embora diga,
isso não é verdade do nível prático.
Basicamente, o código que examina o arquivo / etc / hosts não suporta uma entrada curinga.
A solução alternativa é criar todas as entradas antecipadamente, talvez use um script para colocar algumas centenas de entradas de uma só vez.
fonte
O @petah e o Acrylic DNS Proxy é a melhor resposta, e no final ele faz referência à capacidade de fazer vários sites usando um Apache que @jeremyasnyder descreve um pouco mais adiante ...
... no entanto, no nosso caso, estamos testando um sistema de hospedagem com vários inquilinos e, portanto, a maioria dos domínios que queremos testar é a mesma
virtualhost
, enquanto outros são direcionados a outros lugares.Portanto, no nosso caso, você simplesmente usa caracteres curinga regex na
ServerAlias
diretiva, assim ...fonte
Aqui está a configuração total para aqueles que tentam atingir a meta (curingas no ambiente de desenvolvimento, por exemplo, XAMPP - este exemplo assume todos os sites que apontam para a mesma base de código)
arquivo hosts (adicione uma entrada)
arquivo:% SystemRoot% \ system32 \ drivers \ etc \ hosts
Configuração httpd.conf (ativar vhosts)
arquivo: \ XAMPP \ etc \ httpd.conf
Configuração httpd-vhosts.conf
arquivo: XAMPP \ etc \ extra \ httpd-vhosts.conf
reinicie o apache
crie um arquivo pac:
salve como o que quiser.pac onde quiser e, em seguida, carregue o arquivo na rede do navegador> proxy> configurações de configuração automática (recarregue se você alterar isso)
fonte
Você pode usar echoipdns para isso ( https://github.com/zapty/echoipdns ).
Ao executar
echoipdns local
todas as solicitações de subdomínios .local são redirecionadas para 127.0.0.1, portanto, qualquer domínio com xyz.local etc será resolvido para 127.0.0.1. Você pode usar qualquer outro sufixo e também substituir local pelo nome desejado.O Echoipdns é ainda mais poderoso, quando você deseja usar seu URL de outras máquinas na rede, ainda pode usá-lo com configuração zero.
Por exemplo, se o endereço IP da sua máquina for 192.168.1.100, você poderá agora usar um nome de domínio xyz.192-168-1-100.local que sempre será resolvido para 192.168.1.100. Essa mágica é feita pelos echoipdns, observando o endereço IP na segunda parte do nome de domínio e retornando o mesmo endereço IP na consulta DNS. Você precisará executar os ecos na máquina a partir da qual deseja acessar o sistema remoto.
O echoipdns também pode ser configurado como um proxy DNS autônomo; portanto, basta apontar para esse DNS, agora você pode usar todos os benefícios acima sem executar um comando especial todas as vezes, e até mesmo usá-lo em dispositivos móveis.
Então, basicamente, isso simplifica o desenvolvimento de DNS baseado em domínio curinga para o ambiente local e de equipe.
O echoipdns funciona em Mac, Linux e Windows.
NOTA: Eu sou autor de ecos.
fonte
Configuração do subdomínio automático da configuração nginx com o Proxy DNS Acrílico
Adicione ao arquivo hosts Acrylic
127.0.0.1 example.com *.example.com
e reinicie o serviço Acrylic. $ ramo - seu nome de subdomínio.Defina em vez de root / var / www / html / $ branch / public; o caminho do seu projeto
fonte
Isso pode ser feito usando o Pi-Hole , basta editar o "/ etc / hosts" e reiniciar o serviço DNS.
Exemplo:
fonte
Você pode usar um cliente DNS dinâmico, como http://www.no-ip.com . Em seguida, com um servidor DNS externo CNAME * .mydomain.com para mydomain.no-ip.com.
fonte
Embora não seja possível adicionar um curinga como esse, você pode adicionar a lista completa de sites necessários, pelo menos para testes, que funcionam bem o suficiente para mim, no arquivo de hosts, basta adicionar:
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
...
fonte