由於我總是創建迷你測試和開發站點,所以我正在php 5.3 中編寫一個基於迷你Web 的腳本,以簡化在運行wamp 堆疊的Windows 上建立本機開發站點,該堆疊旨在建立虛擬主機條目和一個條目對於 Windows 主機檔案中的站點,我想我最好將其設為非 Windows 版本特定的盡可能。我突然想到:-
a) 我甚至不記得我的主機檔案中只有一個 127.0.0.1 本地主機條目的時候,以及如果它在「開箱即用」時甚至有這個條目
b) Windows 3.1 之後的所有版本是否總是使用主機檔案進行本機 DNS 查詢,並且它是否總是位於 :\WINDOWS\system32\drivers\etc\hosts 中?
我知道這聽起來有點懶,讓我自己手動在 apache conf 和主機文件中進行一些簡單的編輯,但我計劃向其中添加一些額外的位(創建 mysql/sqllite/mssql/postgre 模板數據庫) 、構建zend框架模板等的能力,所以它不僅僅是vhost 和主機文件條目!
答案1
所有版本的 Windows 都附帶主機檔案嗎?
不會。 localhost 現在已在 DNS 解析器本身中解析。文件本身就在那裡,但開箱即用的只是一堆註解。
也就是說; Windows 7的表現就像 HOSTS 檔案中有一個 localhost 條目一樣。 localhost 確實指向 127.0.0.1 和 ::1,只是方式不同。
Windows 3.1 之後的所有版本是否總是使用主機檔案進行本機 DNS 查詢,並且它是否始終位於 :\WINDOWS\system32\drivers\etc\hosts
它始終%WINDIR%\system32\drivers\etc\hosts
適用於基於 NT 的 Windows。某些版本的 Windows,例如 2000;使用 \WINNT 而不是 \Windows。正如我上面所說; Windows 7 根本不使用 HOSTS 檔案來解析 localhost。
對於非 NT Windows(例如 95/98/ME),它是%Windir%\HOSTS
.