Chcę skonfigurować moją lokalną maszynę programistyczną, aby wszelkie prośby o nią *.local
były przekierowywane localhost
. Chodzi o to, że jak rozwijać wiele witryn, mogę tylko dodać vhosty do Apache nazywa site1.local
, site2.local
etc, i mieć je wszystkie postanawiamy localhost
, gdy Apache służy innemu witryny odpowiednio.
Korzystam z systemu Windows XP.
Próbowałem dodać
127.0.0.1 *.local
do mojego c:\windows\system32\drivers\etc\hosts
pliku próbowałem też:
127.0.0.1 .local
Żaden z nich wydaje się nie działać.
Wiem, że mogę ustawić je dla różnych numerów portów, ale jest to uciążliwe, ponieważ trudno jest zapamiętać, który port jest który.
Nie chcę konfigurować lokalnego serwera DNS ani nic trudnego, jakieś sugestie?
Odpowiedzi:
Akrylowy serwer proxy DNS (bezpłatny, open source) wykonuje to zadanie. Tworzy serwer proxy DNS (na twoim komputerze) z własnym plikiem hosts. Plik hosts akceptuje symbole wieloznaczne.
Pobierz z oficjalnej strony internetowej
http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home
Konfigurowanie akrylowego serwera proxy DNS
Aby skonfigurować serwer Acrylic DNS Proxy, zainstaluj go z powyższego łącza, a następnie przejdź do:
Dodaj następujące linie na końcu pliku:
Uruchom ponownie usługę Acryl DNS Proxy:
Konieczne będzie również dostosowanie ustawień DNS w ustawieniach interfejsu sieciowego:
Ustaw „Użyj następującego adresu serwera DNS”:
Jeśli następnie połączysz tę odpowiedź z odpowiedzią (jeremyasnyder
VirtualDocumentRoot
), możesz automatycznie skonfigurować domeny / wirtualne hosty, po prostu tworząc katalog.źródło
PrimaryServerAddress
konfiguracja (nie plik hostów) powinna zostać zmieniona z domyślnej na konfigurację8.8.8.8
hosta. W VirtualBox jest to10.0.2.3
.Aby odpowiedzieć na pytanie, nie można używać symboli wieloznacznych w pliku hosts w systemie Windows.
Jeśli jednak chcesz tylko zmienić plik hosts, aby nowe witryny działały .... możesz skonfigurować Apache w ten sposób i nie musisz dalej edytować jego konfiguracji:
http://postpostmodern.com/instructional/a-smarter-mamp/
Zasadniczo krótkie podsumowanie oparte na mojej konfiguracji, dodaj następujące elementy do pliku apache.conf:
To pozwala mi dodać wpis, taki jak:
a następnie utwórz katalog, c: \ xampp \ sites \ dev \ test i umieść tam niezbędne pliki i to po prostu działa.
Inną opcją jest użycie
<Directory>
znaczników w apache.conf i odniesienie do stron z http: // localhost / project / .źródło
Nie sądzę, że jest to możliwe.
W każdym razie musisz zmodyfikować wpisy wirtualnego katalogu apache za każdym razem, gdy dodajesz nową witrynę i lokalizację, więc synchronizacja nowej nazwy z plikiem vhost systemu Windows nie jest dużym problemem.
Aktualizacja: sprawdź następną odpowiedź i komentarze do tej odpowiedzi. Ta odpowiedź ma 6 lat i już nie jest poprawna.
źródło
ServerAlias *.mydomain.localhost
(*
będącym kodem języka), abyś nie musiał edytować httpd.conf za każdym razem, gdy dodajesz nowy język; ale nadal musisz dodać subdomenę do pliku hosts, stąd znaczenie powyższego pytania.hosts
naprawdęAby dodać do świetnych sugestii już tutaj, XIP.IO to fantastyczny serwer DNS z wieloznacznymi danymi , który jest publicznie dostępny.
(Możliwość określenia adresów innych niż sprzężenie zwrotne jest fantastyczna do testowania witryn na urządzeniach z iOS, na których nie można uzyskać dostępu do pliku hosts.)
Jeśli połączysz to z niektórymi konfiguracjami Apache wspomnianymi w innych odpowiedziach, możesz potencjalnie dodać VirtualHosts z zerową konfiguracją .
źródło
Znalazłem wpis o korzystaniu z pliku hostów systemu Windows, który mówi również: „Niedozwolone są symbole wieloznaczne”.
W przeszłości dodawałem właśnie dodatkowe wpisy do pliku hosts, ponieważ (jak wcześniej wspomniano) nie jest to aż tak dużo pracy, gdy już edytujesz plik konfiguracyjny apache.
źródło
Edytowanie pliku hosts nie jest uciążliwe po uruchomieniu polecenia „ipconfig / flushdns” z wiersza polecenia systemu Windows zamiast ponownego uruchamiania komputera.
źródło
Możesz porozmawiać z administratorem sieci, aby utworzył dla ciebie domenę (powiedz „evilpuppetmaster.hell”) i umieścił tam symbol wieloznaczny, aby wszystko (* .evilpuppetmaster.hell) rozwiązało się z twoim adresem IP
źródło
Działa to przy użyciu wieloznacznego DNS na naszym lokalnym serwerze DNS: dodaj
A
rekord coś w rodzaju*.local -> 127.0.0.1
Myślę, że twoje ustawienia sieciowe będą musiały mieć wybrany sufiks domeny na liście wyszukiwania sufiksów domen dla komputerów w sieci, więc możesz chcieć zastąpić
.local
domeną wewnętrzną swojej firmy (np..int
), A następnie dodać subdomenę, taką jak.localhost.int
aby to wyjaśnić do czego to służy.Tak
*.localhost.int
by rozwiązać, aby127.0.0.1
dla wszystkich w sieci i ustawienia pliku konfiguracyjnego dla wszystkich programistów będzie „tylko praca”, jeśli punkty końcowe powiesić się, że subdomena npsite1.localhost.int
,site2.localhost.int
to jest dość dużo schemat wprowadziliśmy.dnsmasq też wygląda ładnie, ale jeszcze go nie próbowałem: http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/
źródło
Napisałem prosty serwer proxy dns w Pythonie. Czyta wpisy symboli wieloznacznych w / etc / hosts. Zobacz tutaj: http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsproxy.py
Testowałem w systemach Linux i Mac OS X, ale jeszcze nie w systemie Windows.
źródło
Możesz wypróbować AngryHosts , który zapewnił obsługę symboli wieloznacznych i wyrażeń regularnych. W rzeczywistości jest to oprogramowanie do ulepszania i zarządzania plikami hostów.
Więcej funkcji można zobaczyć @ http://angryhosts.com/features/
źródło
Używam do tego DNSChef.
https://thesprawl.org/projects/dnschef/
Musisz pobrać aplikację, w systemie Linux lub Mac potrzebujesz Pythona, aby ją uruchomić. Windows ma swój własny plik exe.
Musisz na przykład utworzyć plik ini z wpisami dns
Następnie musisz uruchomić aplikację dns z uprawnieniami administratora
lub w systemie Windows
Na koniec musisz skonfigurować jako jedyne DNS lokalne środowisko hosta (sieć, interfejs, dns lub podobne lub w linux /etc/resolv.conf).
Otóż to
źródło
Zrobiłem to proste narzędzie, aby zastąpić gospodarzy. Obsługiwane są wyrażenia regularne. https://github.com/stackia/DNSAgent
Przykładowa konfiguracja:
źródło
Nie mogłem znaleźć zakazu na piśmie, ale zgodnie z konwencją plik hostów systemu Windows ściśle podąża za plikiem hostów systemu UNIX i nie można w nim umieszczać odwołań do nazwy hosta ze znakiem zastępczym.
Jeśli czytasz stronę podręcznika, mówi:
Chociaż mówi:
to nie jest prawdą z praktycznego poziomu.
Zasadniczo kod, który przegląda plik / etc / hosts nie obsługuje wpisu z symbolem wieloznacznym.
Obejściem tego problemu jest wcześniejsze utworzenie wszystkich wpisów, być może użyj skryptu, aby umieścić kilkaset wpisów na raz.
źródło
@petah i Acrylic DNS Proxy to najlepsza odpowiedź, a na koniec wspomina o możliwości tworzenia wielu witryn przy użyciu Apache, który @jeremyasnyder opisuje nieco dalej ...
... jednak w naszym przypadku testujemy system hostingu z wieloma dzierżawcami, więc większość domen, które chcemy przetestować, idzie do tego samego
virtualhost
, a kilka innych jest skierowanych gdzie indziej.W naszym przypadku po prostu używasz symboli zastępczych w
ServerAlias
dyrektywie, tak jak ...źródło
Oto całkowita konfiguracja dla osób próbujących osiągnąć cel (symbole wieloznaczne w środowisku deweloperskim, tj. XAMPP - w tym przykładzie zakłada się, że wszystkie witryny wskazują tę samą bazę kodów)
plik hosts (dodaj wpis)
plik:% SystemRoot% \ system32 \ drivers \ etc \ hosts
Konfiguracja httpd.conf (włącz vhosts)
plik: \ XAMPP \ etc \ httpd.conf
Konfiguracja httpd-vhosts.conf
plik: XAMPP \ etc \ extra \ httpd-vhosts.conf
uruchom ponownie apache
utwórz plik pac:
zapisz jako cokolwiek.pac gdziekolwiek chcesz, a następnie załaduj plik do sieci przeglądarki> proxy> ustawienia auto_konfiguracji (załaduj ponownie, jeśli to zmienisz)
źródło
Możesz do tego użyć echoipdns ( https://github.com/zapty/echoipdns ).
Po uruchomieniu
echoipdns local
wszystkich żądań poddomen .local przekierowuje się do 127.0.0.1, więc każda domena z xyz.local itp. Rozwiąże się do 127.0.0.1. Możesz użyć dowolnego innego sufiksu, a także po prostu zastąp lokalny wybraną nazwą.Echoipdns jest jeszcze bardziej wydajny, jeśli chcesz używać adresu URL z innych komputerów w sieci, możesz go nadal używać przy zerowej konfiguracji.
Na przykład, jeśli twój adres IP komputera to 192.168.1.100, możesz teraz użyć nazwy domeny xyz.192-168-1-100.local, która zawsze rozwiąże się do 192.168.1.100. Tę magię wykonują echoipdns, patrząc na adres IP w drugiej części nazwy domeny i zwracając ten sam adres ip na zapytanie DNS. Będziesz musiał uruchomić echoipdns na komputerze, z którego chcesz uzyskać dostęp do zdalnego systemu.
echoipdns można również skonfigurować jako samodzielny serwer proxy DNS, więc po prostu wskazując ten DNS, możesz teraz korzystać ze wszystkich powyższych zalet bez uruchamiania specjalnego polecenia za każdym razem, a nawet możesz go używać z urządzeń mobilnych.
Zasadniczo upraszcza to zatem tworzenie DNS w oparciu o domenę wieloznaczną dla środowiska lokalnego i zespołowego.
echoipdns działa na komputerach Mac, Linux i Windows.
UWAGA: Jestem autorem echoipdns.
źródło
Konfiguracja automatycznej subdomeny config nginx z Acryl DNS Proxy
Dodaj do pliku hostów Acryl
127.0.0.1 example.com *.example.com
i uruchom ponownie usługę Acryl. $ branch - nazwa twojej subdomeny.Ustaw zamiast root / var / www / html / $ branch / public; twoja ścieżka projektu
źródło
Można to zrobić za pomocą Pi-Hole , po prostu edytuj „/ etc / hosts” i uruchom ponownie usługę dns.
Przykład:
źródło
Możesz użyć dynamicznego klienta DNS, takiego jak http://www.no-ip.com . Następnie za pomocą zewnętrznego serwera DNS CNAME * .mydomain.com do mydomain.no-ip.com.
źródło
Chociaż nie możesz dodać takiego symbolu wieloznacznego, możesz dodać pełną listę witryn, których potrzebujesz, przynajmniej do testowania, która działa wystarczająco dobrze dla mnie, w pliku hosts, po prostu dodajesz:
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
...
źródło