Ich möchte meinen lokalen Entwicklungscomputer so einrichten, dass alle Anforderungen an *.local
umgeleitet werden localhost
. Die Idee ist, dass ich beim Entwickeln mehrerer Sites einfach vhosts zu Apache hinzufügen kann, die aufgerufen werden site1.local
, site2.local
usw., und sie alle auflösen lassen localhost
, während Apache eine andere Site entsprechend bedient.
Ich bin unter Windows XP.
Ich habe versucht hinzuzufügen
127.0.0.1 *.local
zu meiner c:\windows\system32\drivers\etc\hosts
Datei, auch versucht:
127.0.0.1 .local
Beides scheint nicht zu funktionieren.
Ich weiß, dass ich sie auf verschiedenen Portnummern einrichten kann, aber das ist ein Schmerz, da es schwer ist, sich zu erinnern, welcher Port welcher ist.
Ich möchte keinen lokalen DNS-Server einrichten müssen oder irgendetwas Schwieriges, irgendwelche Vorschläge?
Antworten:
Acrylic DNS Proxy (kostenlos, Open Source) erledigt den Job. Es erstellt einen Proxy-DNS-Server (auf Ihrem eigenen Computer) mit einer eigenen Hosts-Datei. Die Hosts-Datei akzeptiert Platzhalter.
Download von der offiziellen Website
http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home
Konfigurieren des Acryl-DNS-Proxys
Um den Acryl-DNS-Proxy zu konfigurieren, installieren Sie ihn über den obigen Link und gehen Sie dann zu:
Fügen Sie die folgenden Zeilen am Ende der Datei hinzu:
Starten Sie den Acrylic DNS Proxy-Dienst neu:
Sie müssen auch Ihre DNS-Einstellung in den Einstellungen Ihrer Netzwerkschnittstelle anpassen:
Stellen Sie "Folgende DNS-Serveradresse verwenden" ein:
Wenn Sie diese Antwort dann mit der Antwort von jeremyasnyder (mit
VirtualDocumentRoot
) kombinieren , können Sie automatisch Domänen / virtuelle Hosts einrichten, indem Sie einfach ein Verzeichnis erstellen.quelle
PrimaryServerAddress
in der Konfiguration (nicht in der Hosts-Datei) von der Standardeinstellung8.8.8.8
auf die vom Host bereitgestellte geändert werden . In VirtualBox ist dies10.0.2.3
.Um Ihre Frage zu beantworten, können Sie unter Windows keine Platzhalter in der Hosts-Datei verwenden.
Wenn Sie jedoch nur die Hosts-Datei ändern möchten, damit neue Websites funktionieren, können Sie Ihren Apache folgendermaßen konfigurieren und müssen die Konfiguration nicht weiter bearbeiten:
http://postpostmodern.com/instructional/a-smarter-mamp/
Fügen Sie Ihrer apache.conf-Datei im Grunde genommen eine kurze Zusammenfassung hinzu, die auf meinem Setup basiert:
Dadurch kann ich einen Eintrag hinzufügen wie:
und machen Sie dann das Verzeichnis c: \ xampp \ sites \ dev \ test und platzieren Sie die erforderlichen Dateien dort und es funktioniert einfach.
Die andere Option besteht darin,
<Directory>
Tags in der Datei apache.conf zu verwenden und auf die Seiten von http: // localhost / project / zu verweisen .quelle
Ich denke nicht, dass es möglich ist.
Sie müssen die Apache Virtualroot-Einträge ohnehin jedes Mal ändern, wenn Sie eine neue Site und einen neuen Speicherort hinzufügen. Daher ist es keine große Arbeit, den neuen Namen mit der Windows-vhost-Datei zu synchronisieren.
Update: Bitte überprüfen Sie die nächste Antwort und die Kommentare zu dieser Antwort. Diese Antwort ist 6 Jahre alt und nicht mehr korrekt.
quelle
ServerAlias *.mydomain.localhost
(*
als Sprachcode) haben, sodass Sie httpd.conf nicht jedes Mal bearbeiten müssen, wenn Sie eine neue Sprache hinzufügen. Sie müssen die Subdomain jedoch noch zur Hosts-Datei hinzufügen, daher die Relevanz der obigen Frage.hosts
DateiUm bereits hier auf die großen Anregungen, XIP.IO ist ein fantastischer Wildcard - DNS - Server , die öffentlich zugänglich ist.
(Die Möglichkeit, Nicht-Loopback-Adressen anzugeben, eignet sich hervorragend zum Testen von Websites auf iOS-Geräten, auf die Sie nicht auf eine Hosts-Datei zugreifen können.)
Wenn Sie dies mit einigen der in anderen Antworten erwähnten Apache-Konfigurationen kombinieren, können Sie möglicherweise VirtualHosts ohne Setup hinzufügen .
quelle
Ich habe einen Beitrag über die Verwendung der Windows-Hosts-Datei gefunden , in dem auch steht, dass keine Platzhalter zulässig sind.
In der Vergangenheit habe ich gerade die zusätzlichen Einträge zur Hosts-Datei hinzugefügt, da es (wie bereits erwähnt) nicht so viel zusätzliche Arbeit gibt, wenn Sie die Apache-Konfigurationsdatei bereits bearbeiten.
quelle
Das Bearbeiten der Hosts-Datei ist weniger schmerzhaft, wenn Sie "ipconfig / flushdns" an der Windows-Eingabeaufforderung ausführen, anstatt Ihren Computer neu zu starten.
quelle
Sie können Ihren Netzwerkadministrator überreden, eine Domain für Sie einzurichten (z. B. 'evilpuppetmaster.hell') und den Platzhalter dort zu haben, damit alles (* .evilpuppetmaster.hell ') in Ihre IP aufgelöst wird
quelle
Wir haben diese Funktion mit Platzhalter-DNS in unserem lokalen DNS-Server: Fügen Sie einen
A
Eintrag wie so etwas hinzu*.local -> 127.0.0.1
Ich denke, dass Ihre Netzwerkeinstellungen das ausgewählte Domänensuffix in der Suchliste für Domänensuffixe für Computer im Netzwerk haben müssen. Daher möchten Sie möglicherweise
.local
die interne Domäne Ihres Unternehmens (z. B..int
) ersetzen und dann eine Unterdomäne hinzufügen.localhost.int
, um dies zu verdeutlichen wofür es ist.So
*.localhost.int
würde lösen127.0.0.1
für alle Teilnehmer im Netzwerk und Konfigurationsdatei Einstellungen für alle Entwickler würde „nur Arbeit“ , wenn Endpunkte hängen von dieser Sub - Domain zBsite1.localhost.int
,site2.localhost.int
Das ist so ziemlich das Schema wir eingeführt haben.dnsmasq sieht auch gut aus, aber ich habe es noch nicht ausprobiert: http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/
quelle
Ich habe einen einfachen DNS-Proxy in Python geschrieben. Es werden Platzhaltereinträge in / etc / hosts gelesen. Siehe hier: http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsproxy.py
Ich habe unter Linux und Mac OS X getestet, aber noch nicht unter Windows.
quelle
Sie können AngryHosts ausprobieren , mit dem Platzhalter und reguläre Ausdrücke unterstützt werden. Tatsächlich handelt es sich um eine Software zur Verbesserung und Verwaltung von Hostdateien.
Weitere Funktionen finden Sie unter http://angryhosts.com/features/
quelle
Ich benutze DNSChef, um das zu tun.
https://thesprawl.org/projects/dnschef/
Sie müssen die App herunterladen, unter Linux oder Mac benötigen Sie Python, um sie auszuführen. Windows hat eine eigene Exe.
Sie müssen beispielsweise eine INI-Datei mit Ihren DNS-Einträgen erstellen
Anschließend müssen Sie die DNS-Anwendung mit Administratorrechten starten
oder in Fenstern
Schließlich müssen Sie Ihre lokale Host-Umgebung (Netzwerk, Schnittstelle, DNS oder ähnliches oder unter Linux /etc/resolv.conf) als einziges DNS einrichten.
Das ist es
quelle
Ich habe dieses einfache Tool entwickelt, um den Platz von Hosts einzunehmen. Reguläre Ausdrücke werden unterstützt. https://github.com/stackia/DNSAgent
Eine Beispielkonfiguration:
quelle
Ich konnte kein schriftliches Verbot finden, aber gemäß Konvention folgt die Windows-Hosts-Datei genau der UNIX-Hosts-Datei, und Sie können keine Platzhalter-Hostnamenreferenzen in diese Datei einfügen.
Wenn Sie die Manpage lesen, heißt es:
Obwohl es heißt,
das ist aus praktischer Sicht nicht wahr.
Grundsätzlich unterstützt der Code, der die Datei / etc / hosts durchsucht, keinen Platzhaltereintrag.
Die Problemumgehung besteht darin, alle Einträge im Voraus zu erstellen. Verwenden Sie möglicherweise ein Skript, um ein paar hundert Einträge gleichzeitig einzufügen.
quelle
@petah und Acryl DNS Proxy ist die beste Antwort, und am Ende verweist er auf die Möglichkeit, Multi-Site mit einem Apache zu tun, den @jeremyasnyder etwas weiter unten beschreibt ...
In unserem Fall testen wir jedoch ein Hosting-System mit mehreren Mandanten. Daher gehen die meisten Domains, die wir testen möchten, auf dasselbe System
virtualhost
, während einige andere auf andere Bereiche ausgerichtet sind.In unserem Fall verwenden Sie also einfach Regex-Platzhalter in der
ServerAlias
Direktive, wie z.quelle
Hier ist die Gesamtkonfiguration für diejenigen, die versuchen, das Ziel zu erreichen (Platzhalter in der Entwicklungsumgebung, dh XAMPP - in diesem Beispiel wird davon ausgegangen, dass alle Sites auf dieselbe Codebasis verweisen).
Hosts-Datei (Eintrag hinzufügen)
Datei:% SystemRoot% \ system32 \ drivers \ etc \ hosts
httpd.conf Konfiguration (vhosts aktivieren)
Datei: \ XAMPP \ etc \ httpd.conf
httpd-vhosts.conf Konfiguration
Datei: XAMPP \ etc \ extra \ httpd-vhosts.conf
Starten Sie Apache neu
Pac-Datei erstellen:
Speichern Sie als Whatever.pac, wo immer Sie möchten, und laden Sie die Datei dann in die Einstellungen Netzwerk> Proxy> Autokonfiguration des Browsers (laden Sie sie neu, wenn Sie dies ändern).
quelle
Sie können hierfür echoipdns verwenden ( https://github.com/zapty/echoipdns ).
Durch Ausführen werden
echoipdns local
alle Anforderungen für .local-Subdomänen auf 127.0.0.1 umgeleitet, sodass jede Domain mit xyz.local usw. in 127.0.0.1 aufgelöst wird. Sie können jedes andere Suffix verwenden und einfach local durch den gewünschten Namen ersetzen.Echoipdns ist noch leistungsfähiger. Wenn Sie Ihre URL von anderen Computern im Netzwerk verwenden möchten, können Sie sie weiterhin ohne Konfiguration verwenden.
Wenn beispielsweise die IP-Adresse Ihres Computers 192.168.1.100 lautet, können Sie jetzt einen Domänennamen xyz.192-168-1-100.local verwenden, der immer in 192.168.1.100 aufgelöst wird. Diese Magie wird von den echoipdns ausgeführt, indem die IP-Adresse im zweiten Teil des Domainnamens überprüft und dieselbe IP-Adresse bei der DNS-Abfrage zurückgegeben wird. Sie müssen die echoipdns auf dem Computer ausführen, von dem aus Sie auf das Remote-System zugreifen möchten.
echoipdns kann auch als eigenständiger DNS-Proxy eingerichtet werden. Wenn Sie also nur auf diesen DNS verweisen, können Sie jetzt alle oben genannten Vorteile nutzen, ohne jedes Mal einen speziellen Befehl ausführen zu müssen, und Sie können ihn sogar von Mobilgeräten aus verwenden.
Dies vereinfacht im Wesentlichen die auf Wildcard-Domänen basierende DNS-Entwicklung sowohl für die lokale als auch für die Teamumgebung.
echoipdns funktioniert unter Mac, Linux und Windows.
HINWEIS: Ich bin Autor für echoipdns.
quelle
Konfiguration für die automatische Subdomain nginx config mit Acrylic DNS Proxy
Zur Acrylic-Hosts-Datei
127.0.0.1 example.com *.example.com
hinzufügen und Acrylic-Dienst neu starten. $ branch - Ihr Subdomainname.Set anstelle von root / var / www / html / $ branch / public; Ihr Projektpfad
quelle
Dies kann mit Pi-Hole erfolgen . Bearbeiten Sie einfach "/ etc / hosts" und starten Sie den DNS-Dienst neu.
Beispiel:
quelle
Sie können einen dynamischen DNS-Client wie http://www.no-ip.com verwenden . Dann mit einem externen DNS-Server CNAME * .mydomain.com zu mydomain.no-ip.com.
quelle
Während Sie einen solchen Platzhalter nicht hinzufügen können, können Sie die vollständige Liste der Websites, die Sie benötigen, zumindest zum Testen, hinzufügen, die für mich gut genug funktioniert. Fügen Sie in Ihrer Hosts-Datei einfach Folgendes hinzu:
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
...
quelle