Je souhaite configurer ma machine de développement local afin que toutes les demandes *.local
soient redirigées vers localhost
. L'idée est que lorsque je développe plusieurs sites, je peux simplement ajouter des vhosts à Apache appelés site1.local
, site2.local
etc., et les faire tous résoudre localhost
, tandis qu'Apache dessert un site différent en conséquence.
Je suis sous Windows XP.
J'ai essayé d'ajouter
127.0.0.1 *.local
à mon c:\windows\system32\drivers\etc\hosts
fichier, a également essayé:
127.0.0.1 .local
Aucun des deux ne semble fonctionner.
Je sais que je peux les configurer sur différents numéros de port, mais c'est pénible car il est difficile de se rappeler quel port est lequel.
Je ne veux pas avoir à configurer un serveur DNS local ou quoi que ce soit de dur, des suggestions?
Réponses:
Acrylic DNS Proxy (gratuit, open source) fait le travail. Il crée un serveur DNS proxy (sur votre propre ordinateur) avec son propre fichier d'hôtes. Le fichier hosts accepte les caractères génériques.
Télécharger depuis le site officiel
http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home
Configuration du proxy DNS acrylique
Pour configurer le proxy DNS acrylique, installez-le à partir du lien ci-dessus, puis accédez à:
Ajoutez les lignes suivantes à la fin du fichier:
Redémarrez le service de proxy DNS acrylique:
Vous devrez également ajuster votre paramètre DNS dans vos paramètres d'interface réseau:
Définissez "Utiliser l'adresse de serveur DNS suivante":
Si vous combinez ensuite cette réponse avec la réponse de jeremyasnyder (en utilisant
VirtualDocumentRoot
), vous pouvez alors configurer automatiquement les domaines / hôtes virtuels en créant simplement un répertoire.la source
PrimaryServerAddress
dans la configuration (pas le fichier hosts) doit être changé de celui par défaut8.8.8.8
à celui fourni par l'hôte. Dans VirtualBox, c'est10.0.2.3
.Pour répondre à votre question, vous ne pouvez pas utiliser de caractères génériques dans le fichier hosts sous Windows.
Cependant, si vous souhaitez uniquement modifier le fichier hosts pour faire fonctionner de nouveaux sites .... vous pouvez configurer votre Apache comme ceci et vous n'avez pas à continuer de modifier sa configuration:
http://postpostmodern.com/instructional/a-smarter-mamp/
Fondamentalement, un résumé rapide basé sur ma configuration, ajoutez ce qui suit à votre fichier apache.conf:
Cela me permet d'ajouter une entrée comme:
puis créez le répertoire, c: \ xampp \ sites \ dev \ test et placez-y les fichiers nécessaires et cela fonctionne.
L'autre option consiste à utiliser des
<Directory>
balises dans apache.conf et à référencer les pages de http: // localhost / project / .la source
Je ne pense pas que ce soit possible.
Vous devez de toute façon modifier les entrées d'apache virtualroot chaque fois que vous ajoutez un nouveau site et un nouvel emplacement, donc ce n'est pas un gros travail de synchroniser le nouveau nom dans le fichier vhost de Windows.
Mise à jour: veuillez vérifier la réponse suivante et les commentaires sur cette réponse. Cette réponse a 6 ans et n'est plus correcte.
la source
ServerAlias *.mydomain.localhost
(*
étant le code de langue), de sorte que vous n'avez pas à modifier httpd.conf chaque fois que vous ajoutez une nouvelle langue; mais vous devez toujours ajouter le sous-domaine au fichier hosts, d'où la pertinence de la question ci-dessus.hosts
fichier vraimentPour ajouter aux excellentes suggestions déjà ici, XIP.IO est un fantastique serveur DNS générique accessible au public.
(La possibilité de spécifier des adresses sans boucle est fantastique pour tester des sites sur des appareils iOS où vous ne pouvez pas accéder à un fichier d'hôtes.)
Si vous combinez cela avec une partie de la configuration Apache mentionnée dans d'autres réponses, vous pouvez potentiellement ajouter des VirtualHosts sans aucune configuration .
la source
J'ai trouvé une publication sur l' utilisation du fichier des hôtes Windows qui dit également "Aucun caractère générique n'est autorisé."
Dans le passé, je viens d'ajouter les entrées supplémentaires au fichier hosts, car (comme dit précédemment), ce n'est pas beaucoup de travail supplémentaire lorsque vous éditez déjà le fichier de configuration apache.
la source
La modification du fichier hosts est moins pénible lorsque vous exécutez "ipconfig / flushdns" à partir de l'invite de commande Windows, au lieu de redémarrer votre ordinateur.
la source
Vous pouvez demander à votre administrateur réseau de configurer un domaine pour vous (par exemple, «evilpuppetmaster.hell») et d'y avoir le caractère générique afin que tout (* .evilpuppetmaster.hell ») soit résolu sur votre IP
la source
Nous avons ce travail en utilisant le DNS générique dans notre serveur DNS local: ajoutez un
A
enregistrement quelque chose comme*.local -> 127.0.0.1
Je pense que vos paramètres réseau devront avoir le suffixe de domaine choisi dans la liste de recherche de suffixe de domaine pour les machines sur le réseau, donc vous voudrez peut-être le remplacer
.local
par le domaine interne de votre entreprise (par exemple.int
), puis ajouter un sous-domaine comme.localhost.int
pour le rendre clair à quoi ça sert.Donc,
*.localhost.int
cela se résoudrait127.0.0.1
pour tout le monde sur le réseau, et les paramètres de fichier de configuration pour tous les développeurs "fonctionneraient" si les points de terminaison se bloquaient sur ce sous-domaine, par exemplesite1.localhost.int
,site2.localhost.int
c'est à peu près le schéma que nous avons introduit.dnsmasq a aussi l'air sympa, mais je ne l'ai pas encore essayé: http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/
la source
J'ai écrit un simple proxy DNS en Python. Il lira les entrées génériques dans / etc / hosts. Voir ici: http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsproxy.py
J'ai testé sous Linux et Mac OS X, mais pas encore sous Windows.
la source
Vous pouvez essayer AngryHosts , qui a fourni un moyen de prendre en charge les caractères génériques et les expressions régulières. En fait, il s'agit d'un logiciel de gestion et d'amélioration des fichiers hôtes.
Plus de fonctionnalités peuvent être vues sur http://angryhosts.com/features/
la source
J'utilise DNSChef pour cela.
https://thesprawl.org/projects/dnschef/
Vous devez télécharger l'application, sous Linux ou Mac, vous avez besoin de python pour l'exécuter. Windows a son propre exe.
Vous devez créer un fichier ini avec vos entrées DNS, par exemple
Ensuite, vous devez lancer l'application DNS avec des privilèges d'administrateur
ou dans les fenêtres
Enfin, vous devez configurer comme votre seul DNS votre environnement hôte local (réseau, interface, DNS ou similaire ou dans linux /etc/resolv.conf).
C'est tout
la source
J'ai fait cet outil simple pour remplacer les hôtes. Les expressions régulières sont prises en charge. https://github.com/stackia/DNSAgent
Un exemple de configuration:
la source
Je n'ai pas pu trouver d'interdiction par écrit, mais par convention, le fichier des hôtes Windows suit de près le fichier des hôtes UNIX et vous ne pouvez pas mettre de références de nom d'hôte génériques dans ce fichier.
Si vous lisez la page de manuel, elle dit:
Bien qu'il le dise,
ce n'est pas vrai d'un point de vue pratique.
Fondamentalement, le code qui examine le fichier / etc / hosts ne prend pas en charge une entrée générique.
La solution de contournement consiste à créer toutes les entrées à l'avance, peut-être utiliser un script pour mettre quelques centaines d'entrées à la fois.
la source
@petah et Acrylic DNS Proxy est la meilleure réponse, et à la fin il fait référence à la possibilité de faire du multi-site en utilisant un Apache que @jeremyasnyder décrit un peu plus loin ...
... cependant, dans notre cas, nous testons un système d'hébergement multi-locataires et la plupart des domaines que nous voulons tester vont donc de la même manière
virtualhost
, tandis que quelques autres sont dirigés ailleurs.Donc, dans notre cas, vous utilisez simplement des caractères génériques regex dans la
ServerAlias
directive, comme ça ...la source
Voici la configuration totale pour ceux qui tentent d'atteindre l'objectif (caractères génériques dans l'environnement de développement, c'est-à-dire XAMPP - cet exemple suppose que tous les sites pointent vers la même base de code)
fichier hôtes (ajouter une entrée)
fichier:% SystemRoot% \ system32 \ drivers \ etc \ hosts
Configuration httpd.conf (activer les vhosts)
fichier: \ XAMPP \ etc \ httpd.conf
Configuration de httpd-vhosts.conf
fichier: XAMPP \ etc \ extra \ httpd-vhosts.conf
redémarrer apache
créer un fichier pac:
enregistrez-le sous n'importe quel fichier.pac où vous voulez, puis chargez le fichier dans le réseau du navigateur> proxy> paramètres de configuration automatique (rechargez si vous modifiez cela)
la source
Vous pouvez utiliser echoipdns pour cela ( https://github.com/zapty/echoipdns ).
En exécutant
echoipdns local
toutes les demandes de sous-domaines .local sont redirigées vers 127.0.0.1, donc tout domaine avec xyz.local etc. sera résolu en 127.0.0.1. Vous pouvez utiliser n'importe quel autre suffixe et remplacer simplement local par le nom de votre choix.Echoipdns est encore plus puissant, lorsque vous souhaitez utiliser votre URL à partir d'autres machines du réseau, vous pouvez toujours l'utiliser avec une configuration nulle.
Par exemple, si l'adresse IP de votre machine est 192.168.1.100, vous pouvez maintenant utiliser un nom de domaine xyz.192-168-1-100.local qui sera toujours résolu en 192.168.1.100. Cette magie est effectuée par les échos en regardant l'adresse IP dans la deuxième partie du nom de domaine et en renvoyant la même adresse IP sur la requête DNS. Vous devrez exécuter les échos numériques sur la machine à partir de laquelle vous souhaitez accéder au système distant.
echoipdns peut également être configuré en tant que proxy DNS autonome.Par conséquent, en pointant simplement ce DNS, vous pouvez désormais utiliser tous les avantages ci-dessus sans exécuter une commande spéciale à chaque fois, et vous pouvez même l'utiliser à partir d'appareils mobiles.
Donc, cela simplifie essentiellement le développement DNS basé sur le domaine générique pour l'environnement local et d'équipe.
echoipdns fonctionne sur Mac, Linux et Windows.
REMARQUE: je suis l'auteur d'échoipdns.
la source
Configuration pour le sous-domaine automatique nginx config avec proxy DNS acrylique
Ajoutez au fichier des hôtes Acrylic
127.0.0.1 example.com *.example.com
et redémarrez le service Acrylic. $ branch - votre nom de sous-domaine.Définir à la place de root / var / www / html / $ branch / public; le chemin de votre projet
la source
Cela peut être fait en utilisant Pi-Hole , il suffit de modifier le "/ etc / hosts" et de redémarrer le service DNS.
Exemple:
la source
Vous pouvez utiliser un client DNS dynamique tel que http://www.no-ip.com . Ensuite, avec un serveur DNS externe CNAME * .mydomain.com vers mydomain.no-ip.com.
la source
Bien que vous ne puissiez pas ajouter un caractère générique comme celui-ci, vous pouvez ajouter la liste complète des sites dont vous avez besoin, au moins pour les tests, qui fonctionne assez bien pour moi, dans votre fichier hosts, vous ajoutez simplement:
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
...
la source