Saya ingin mengatur mesin pengembangan lokal saya sehingga permintaan untuk *.local
dialihkan ke localhost
. Idenya adalah bahwa ketika saya mengembangkan beberapa situs, saya bisa menambahkan vhosts ke Apache yang disebut site1.local
, site2.local
dll, dan minta mereka semua mengatasinya localhost
, sementara Apache melayani situs yang berbeda.
Saya menggunakan Windows XP.
Saya mencoba menambahkan
127.0.0.1 *.local
ke c:\windows\system32\drivers\etc\hosts
file saya , juga mencoba:
127.0.0.1 .local
Sepertinya tidak ada yang berhasil.
Saya tahu saya dapat mengaturnya pada nomor port yang berbeda, tapi itu menyusahkan karena sulit untuk mengingat port mana yang mana.
Saya tidak ingin harus menyiapkan server DNS lokal atau sesuatu yang sulit, ada saran?
Jawaban:
Proxy DNS Akrilik (gratis, sumber terbuka) melakukan pekerjaan. Itu menciptakan server DNS proksi (di komputer Anda sendiri) dengan file host sendiri. File host menerima wildcard.
Unduh dari situs web resmi
http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home
Mengkonfigurasi Proksi DNS Akrilik
Untuk mengkonfigurasi Acrylic DNS Proxy, instal dari tautan di atas, lalu buka:
Tambahkan baris berikut di akhir file:
Mulai ulang layanan Acrylic DNS Proxy:
Anda juga perlu menyesuaikan pengaturan DNS di pengaturan antarmuka jaringan Anda:
Setel "Gunakan alamat server DNS berikut":
Jika Anda kemudian menggabungkan jawaban ini dengan jawaban jeremyasnyder (menggunakan
VirtualDocumentRoot
) Anda kemudian dapat secara otomatis mengatur domain / host virtual dengan hanya membuat direktori.sumber
PrimaryServerAddress
konfigurasi (bukan file host) harus diubah dari default8.8.8.8
ke yang disediakan host. Di VirtualBox, ini10.0.2.3
.Untuk menjawab pertanyaan Anda, Anda tidak dapat menggunakan wildcard di file host di Windows.
Namun, jika Anda hanya ingin mengubah file host agar situs baru berfungsi .... Anda dapat mengonfigurasi Apache Anda seperti ini dan Anda tidak harus terus mengeditnya, konfigurasi:
http://postpostmodern.com/instructional/a-smarter-mamp/
Pada dasarnya ringkasan cepat berdasarkan pengaturan saya, tambahkan berikut ini ke file apache.conf Anda:
Ini memungkinkan saya untuk menambahkan entri seperti:
lalu buat direktori, c: \ xampp \ sites \ dev \ test dan tempatkan file-file yang diperlukan di sana dan itu hanya berfungsi.
Opsi lainnya adalah menggunakan
<Directory>
tag di apache.conf dan referensi halaman dari http: // localhost / project / .sumber
Saya pikir itu tidak mungkin.
Anda tetap harus memodifikasi entri apro virtualroot setiap kali Anda menambahkan situs dan lokasi baru, jadi itu bukan pekerjaan besar untuk menyinkronkan nama baru ke file Windows vhost.
Perbarui: silakan periksa jawaban berikutnya dan komentar pada jawaban ini. Jawaban ini berumur 6 tahun dan tidak benar lagi.
sumber
ServerAlias *.mydomain.localhost
(*
menjadi kode bahasa), sehingga Anda tidak perlu mengedit httpd.conf setiap kali Anda menambahkan bahasa baru; tetapi Anda masih perlu menambahkan subdomain ke file host, maka relevansi pertanyaan di atas.hosts
file benarUntuk menambah saran hebat yang sudah ada di sini, XIP.IO adalah server DNS wildcard fantastis yang tersedia untuk umum.
(Kemampuan untuk menentukan alamat non-loopback fantastis untuk menguji situs di perangkat iOS di mana Anda tidak dapat mengakses file host.)
Jika Anda menggabungkan ini dengan beberapa konfigurasi Apache yang disebutkan dalam jawaban lain, Anda berpotensi menambah VirtualHosts dengan nol pengaturan .
sumber
Saya menemukan posting tentang Menggunakan File Host Windows yang juga mengatakan "Tidak ada wildcard diizinkan."
Di masa lalu, saya baru saja menambahkan entri tambahan ke file host, karena (seperti yang dikatakan sebelumnya), itu tidak banyak bekerja ekstra ketika Anda sudah mengedit file konfigurasi apache.
sumber
Mengedit file hosts tidak terlalu merepotkan ketika Anda menjalankan "ipconfig / flushdns" dari command prompt windows, alih-alih menyalakan kembali komputer Anda.
sumber
Anda dapat berbicara dengan administrator jaringan untuk mengatur domain untuk Anda (katakan 'evilpuppetmaster.hell') dan memiliki wildcard di sana sehingga semuanya (* .evilpuppetmaster.hell ') diputuskan ke IP Anda
sumber
Kami memiliki ini berfungsi menggunakan wildcard DNS di server DNS lokal kami: tambahkan
A
catatan seperti*.local -> 127.0.0.1
Saya pikir bahwa pengaturan jaringan Anda perlu memiliki akhiran domain yang dipilih dalam daftar pencarian akhiran domain untuk mesin di jaringan, jadi Anda mungkin ingin mengganti
.local
dengan domain internal perusahaan Anda (misalnya.int
) dan kemudian menambahkan subdomain seperti.localhost.int
untuk membuatnya jelas untuk apa ituJadi
*.localhost.int
akan menyelesaikan127.0.0.1
untuk semua orang di jaringan, dan pengaturan file konfigurasi untuk semua pengembang akan "hanya bekerja" jika titik akhir menggantung subdomain itu misalnyasite1.localhost.int
,site2.localhost.int
Ini cukup banyak skema yang telah kami perkenalkan.dnsmasq juga terlihat bagus, tapi saya belum mencobanya: http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/
sumber
Saya telah menulis proxy dns sederhana dengan Python. Ini akan membaca entri wildcard di / etc / hosts. Lihat di sini: http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsproxy.py
Saya telah menguji di Linux & Mac OS X, tetapi belum di Windows.
sumber
Anda dapat mencoba AngryHosts , yang menyediakan cara untuk mendukung wildcard dan ekspresi reguler. Sebenarnya, ini adalah peningkatan file host dan perangkat lunak manajemen.
Fitur lainnya dapat dilihat di @ http://angryhosts.com/features/
sumber
Saya menggunakan DNSChef untuk melakukan itu.
https://thesprawl.org/projects/dnschef/
Anda harus mengunduh aplikasi, di Linux atau Mac Anda perlu python untuk menjalankannya. Windows memiliki exe sendiri.
Anda harus membuat file ini dengan entri dns Anda, misalnya
Maka Anda harus meluncurkan aplikasi dns dengan hak admin
atau di windows
Akhirnya Anda perlu men-setup sebagai DNS Anda satu-satunya di lingkungan host lokal Anda (jaringan, antarmuka, dns atau yang serupa atau di linux /etc/resolv.conf).
Itu dia
sumber
Saya membuat alat sederhana ini untuk menggantikan tuan rumah. Ekspresi reguler didukung. https://github.com/stackia/DNSAgent
Konfigurasi sampel:
sumber
Saya tidak dapat menemukan larangan secara tertulis, tetapi dengan konvensi, file host Windows dengan ketat mengikuti file host UNIX, dan Anda tidak dapat memasukkan referensi nama host wildcard ke file itu.
Jika Anda membaca halaman manual, dikatakan:
Meskipun dikatakan,
itu tidak benar dari tingkat praktis.
Pada dasarnya, kode yang terlihat pada file / etc / hosts tidak mendukung entri wildcard.
Solusinya adalah membuat semua entri sebelumnya, mungkin menggunakan skrip untuk meletakkan beberapa ratus entri sekaligus.
sumber
@petah dan Acrylic DNS Proxy adalah jawaban terbaik, dan pada akhirnya ia merujuk kemampuan untuk melakukan multi-situs menggunakan Apache yang @jeremyasnyder menjelaskan sedikit lebih jauh ke bawah ...
... Namun, dalam kasus kami, kami menguji sistem hosting multi-penyewa dan sebagian besar domain yang ingin kami uji coba sama
virtualhost
, sementara beberapa lainnya diarahkan ke tempat lain.Jadi dalam kasus kami, Anda cukup menggunakan wildcard regex dalam
ServerAlias
arahan, seperti ...sumber
Berikut adalah konfigurasi total untuk mereka yang berusaha mencapai tujuan (wildcard dalam lingkungan dev yaitu, XAMPP - contoh ini mengasumsikan semua situs menunjuk ke basis kode yang sama)
file hosts (tambahkan entri)
file:% SystemRoot% \ system32 \ drivers \ etc \ hosts
Konfigurasi httpd.conf (aktifkan vhosts)
file: \ XAMPP \ etc \ httpd.conf
Konfigurasi httpd-vhosts.conf
file: XAMPP \ etc \ extra \ httpd-vhosts.conf
restart apache
buat file pac:
simpan sebagai apa pun.pac di mana pun Anda inginkan dan kemudian muat file di jaringan browser> proxy> pengaturan konfigurasi auto_ (muat ulang jika Anda mengubahnya)
sumber
Anda dapat menggunakan echoipdns untuk ini ( https://github.com/zapty/echoipdns ).
Dengan menjalankan
echoipdns local
semua permintaan untuk .local subdomain dialihkan ke 127.0.0.1, sehingga setiap domain dengan xyz.local dll akan menyelesaikan ke 127.0.0.1. Anda dapat menggunakan suffix lain juga hanya mengganti lokal dengan nama yang Anda inginkan.Echoipdns bahkan lebih kuat, ketika Anda ingin menggunakan url Anda dari mesin lain di jaringan Anda masih dapat menggunakannya dengan konfigurasi nol.
Misalnya, jika alamat ip mesin Anda adalah 192.168.1.100, Anda sekarang dapat menggunakan nama domain xyz.192-168-1-100.local yang akan selalu berubah menjadi 192.168.1.100. Keajaiban ini dilakukan oleh para echoipdns dengan melihat alamat ip di bagian kedua nama domain dan mengembalikan alamat ip yang sama pada permintaan DNS. Anda harus menjalankan echoipdns pada mesin dari mana Anda ingin mengakses sistem jarak jauh.
echoipdns juga dapat disetel sebagai proksi DNS mandiri, jadi cukup arahkan ke DNS ini, kini Anda dapat menggunakan semua manfaat di atas tanpa menjalankan perintah khusus setiap saat, dan Anda bahkan dapat menggunakannya dari perangkat seluler.
Jadi pada dasarnya ini menyederhanakan pengembangan DNS berbasis domain wildcard untuk lingkungan lokal maupun tim.
echoipdns berfungsi di Mac, Linux dan Windows.
CATATAN: Saya penulis untuk echoipdns.
sumber
Konfigurasi untuk subdomain otomatis nginx config dengan Acrylic DNS Proxy
Tambahkan ke file Host akrilik
127.0.0.1 example.com *.example.com
dan mulai ulang layanan Acrylic. $ branch - nama subdomain Anda.Tetapkan alih-alih root / var / www / html / $ branch / public; jalur proyek Anda
sumber
Ini dapat dilakukan dengan menggunakan Pi-Hole , cukup edit "/ etc / hosts" dan restart layanan dns.
Contoh:
sumber
Anda dapat menggunakan klien DNS dinamis seperti http://www.no-ip.com . Kemudian, dengan server DNS eksternal CNAME * .mydomain.com ke mydomain.no-ip.com.
sumber
Meskipun Anda tidak dapat menambahkan wildcard seperti itu, Anda dapat menambahkan daftar lengkap situs yang Anda butuhkan, setidaknya untuk pengujian, yang berfungsi cukup baik bagi saya, dalam file host Anda, Anda cukup menambahkan:
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
...
sumber