2011年1月14日金曜日

WindowsXPでlocalhostのWebサーバーにアクセスできなくなりました

ブラウザで、「http://127.0.0.1」ではアクセスできるのに、「http://localhost」ではアクセスできなくなったという話です。

PHPを勉強してみたくなってから、自宅のWindowsXPのPCに、Apache、PHP、MySQL、phpMyAdminを設定して利用していました。
開発したものを試したり、phpMyAdminでMySQLにアクセスする時には、ブラウザから、

http://localhost

にアクセスしていました。

が、久々に利用したみたところ、突然、アクセスできなくなってしまいました。
そこで色々調べてみたところ、次のような状況となっていました。

・localhostと同じく、自分自身を指す「http://127.0.0.1」だとアクセスできる。

・名前解決に影響する端末のhostsファイルは、「127.0.0.0 localhost」が確かに有効に記載されている。

・コマンドプロンプトで「nslookup localhost」を実行すると、「127.0.0.1」で解決されて返答が返ってくる。

・コマンドプロンプトで「ping localhost」を打つと、「::1:」のアドレスにpingを打っている(で、返ってこない)。

なんだこの状態は?

ということで、ローカルネットワーク接続を色々見たところ、いつのまにかipv6のTCP/IPサービスがインストールされていました。
「::1:」とは、ipv6のループバックアドレス(自分自身を指すアドレス)だということも判明。
ipv6の設定をした覚えがないのになんで突然・・・・と考えたのですが、一つ思い当たることが出てきました。

最近、NTT西日本のエリアから、NTT東日本のエリアに引越しをしました。
その時、急いでネットから手続き用紙をダウンロードしてプリントアウトしたくなりました。

ネットの接続を設定しようとしたところ、今までのNTT西日本とNTT東日本では、壁の電話線のジャックからPCまでの機器の構成が違っていました。
まだ片付いていない部屋の中で、とりあえずNTT東日本から送られてきた設定CDから「フレッツ接続ツール」だかをインストールし、ウィザードに従って設定することで、とりあえず接続できるようしました。

後日、引越しのドタバタも落ち着きだしたので、改めてルータを利用してLAN環境を構築しなおしました。
PCから行なわれていたPPPoE接続はそのルーターに設定し、PCのネットワーク接続に入っていたフレッツ接続等は、あらかた削除したりアンインストールしたりしました。そして、そのままネット環境は普通に使っていました。

ところが、引越し当初にフレッツ接続ツールをインストールして接続した際に、どうやらipv6を利用する設定もインストールされてしまっていたようです。
近い将来、ipv6の環境も構築しないといけないのでしょうが、

1.私にipv6の知識がないこと

2.とりあえず開発環境を生かすことを優先したい

ので、ipv6の利用を停める事にしました。コマンドプロンプトで、

ipv6 uninstall

を実行して、サービスをアンインストールしました。
(ローカルネットワーク接続のプロパティから行なっても良かったと思います)

その後、PCを再起動することで、無事、http://localhostでアクセスできるようになりました。とさ。