Windows のすべてのバージョンにホスト ファイルが付属していますか? また、それらすべてに localhost エントリがありますか?

Windows のすべてのバージョンにホスト ファイルが付属していますか? また、それらすべてに localhost エントリがありますか?

私はいつもミニテストと開発サイトを作成しているので、Windows で WAMP スタックを実行するローカル開発サイトを簡単に作成できるように、PHP 5.3 でミニ Web ベースのスクリプトを作成しています。このスクリプトは、仮想ホスト エントリと、Windows ホスト ファイルのサイトのエントリを作成することを目的としているため、できるだけ Windows バージョンに依存しないようにしたほうがよいと考えました。次のことに気付きました。

a) 私のホストファイルに127.0.0.1のlocalhostエントリしかなかった時代を思い出せません。また、それが「箱から出した」状態であったとしても、

b) Windows 3.1 以降のすべてのバージョンでは、ローカル DNS クエリにホスト ファイルが常に使用されており、そのファイルは常に :\WINDOWS\system32\drivers\etc\hosts に配置されていますか?

Apache conf とホスト ファイルの簡単な編集を手動で行う手間を省くのは、少し面倒に思えるかもしれませんが、さらにいくつかの機能を追加する予定です (mysql/sqllite/mssql/postgre テンプレート データベースの作成、zend フレームワーク テンプレートの構築機能など、vhost とホスト ファイルのエントリだけではありません。また、Unix vps での展開を容易にするために並列セットアップ スクリプトも作成する予定ですが、これは少し簡単になるはずです)。

答え1

Windows のすべてのバージョンにホスト ファイルが付属していますか? また、それらすべてに localhost エントリがありますか?

いいえ。Windows 7 以降では、localhost エントリは削除されました。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\hostsNT ベースの Windows 用です。2000 などの一部のバージョンの Windows では、\Windows の代わりに \WINNT を使用します。また、上で述べたように、Windows 7 では、localhost を解決するために HOSTS ファイルをまったく使用しません。

NT 以外の Windows (95/98/ME など) の場合は、 です%Windir%\HOSTS

関連情報