XAMPPの403エラーのこといろいろ

403エラー

一応解決したXAMPPのセキュリティ設定をしようとすると403エラーがでるっていう問題ですが、Googleでいろいろ見ているうちにVista側にも問題があるのかもって思うようになりました。

Vistaに問題があるといっても人それぞれ環境が違うだろうし一概にはいえませんが、うちのVistaでは・・・というお話です。

いろいろググッてみて「これが原因かな~?」という感じはつかめたのですが、如何せん知識に乏しいので、ここでは

  • 原因に関係すると思われるキーワードについて
  • どうした場合に正しく動いたか

といった内容だけにとどめたいと思います。

環境について

  • Windows Vista Home Premium SP1
  • XAMPP 1.7.0
    • D:/xamppにインストール

    httpd-xampp.confの修正

    Apacheの設定ファイルhttpd-xampp.confを次のように修正したことで解決。

    Alias /security "D:/xampp/security/htdocs/"
    <Directory "D:/xampp/security/htdocs">
        <IfModule php5_module>
            <Files "xamppsecurity.php">
                php_admin_flag safe_mode off
            </Files>
        </IfModule>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1 localhost ←ここを変更
    </Directory>
    

    詳しくは以下のページで。

    XAMPP1.7.0のセキュリティ設定画面が403エラー | PAOLOG

    localhostの「名前解決」?

    名前解決っていうのは、名前解決とは 【name resolution】 – 意味・解説 : IT用語辞典によると

    ネットワーク上で、コンピュータやネットワーク機器につけられた名前からアドレスを割り出すこと。またはその逆。”>ネットワーク上で、コンピュータやネットワーク機器につけられた名前からアドレスを割り出すこと。またはその逆。

    もともとネット上のアドレスは数字の羅列(これがIPアドレス)で表されているのですが、それじゃ人間にはわかりにくいってことで数字をドメイン名(たとえばこのサイトだとscianto.netの部分)という形に変換します。その変換のことを「名前解決」というそうな。

    自分のパソコンをあらわすときにも使われていて、IPアドレスに相当するものが「127.0.0.1」で、ドメインに相当するものが「localhost」になります。

    この名前解決がうまくいってないとhttp://127.0.0.1/ではアクセスできるが、http://localhost/ではアクセスできないという状況になるということがあるそうなんですが、XAMPPのトップページにはどちらのアドレスでもアクセスできるんだけどなー・・・。

    コマンドプロンプトからpingを打つ

    コマンドプロンプトからlocalhostにpingを打ってみればというのを見つけたのでやってみました。

    C:\>ping localhost

    ここはコンピュータ名 [::1]に ping を送信しています ::1 から 32 バイトのデータ:
    ::1 からの応答: 時間 <1ms
    ::1 からの応答: 時間 <1ms
    ::1 からの応答: 時間 <1ms
    ::1 からの応答: 時間 <1ms

    ::1 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms

    IPv4とIPv6?

    pingを打った結果、::1というものにpingを送信していることがわかりました。どうやらlocalhostはIPv4では127.0.0.1、IPv6では::1になるそうです。しかもVistaではIPv6が優先されるとのこと。

    これが設定されているのが

    C:\Windows\System32\drivers\etc\hosts

    にあるhostsというファイル。ここには

    127.0.0.1 localhost
    ::1 localhost

    と書いてあります。

    ::1の行を無効にしてみる

    消すのは怖いので先頭に#をつけてコメントアウト(?)してみました。

    127.0.0.1 localhost
    #::1 localhost

    で、当然変更したので保存するんですが、保存するには管理者権限が必要になります。いつもDreamweaverを使っているので今回も。DWのショートカットを右クリック、「管理者をして実行」という操作をしました。

    それからブラウザ(Firefox)を再起動してXAMPPの管理画面へ。そしてセキュリティをクリックすると

    なんとできました!!。

    もちろんhttpd-xampp.confの変更はしてません。

    でも、ここいじってもいいのかちょっと心配。

    なんとなくまとめ

    VistaにインストールされているIPv6に関係する問題なのかなという感じですが、結局、対処法としては

    • httpd-xampp.confを編集する
    • hostsファイルを編集する

    のどちらかの方法しかいまのところわかりません。

    書いた順番がむちゃくちゃで、ほとんどもう自分用の覚書みたいになってしまって申し訳ありません。同じ症状にはまっている人の参考になれば幸いです。

    (設定を変えるときはそのまえに試した設定は元に戻してから検証しているので間違ってはないと思いますが・・・。)

    そうのひとりごと

    © 2017 PAOLOG