ブラウザで、「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でアクセスできるようになりました。とさ。