Basic認証でエラー

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

mod_auth_mysql.so はロードできたものの、問題はここからです。

適当なサイトを参考に、認証を必要とするディレクトリに .htaccess ファイルを作成して、ブラウザで開いてみました。
ちゃんとログインのウインドウが出たので、ユーザーIDとパスワードを入れましたが、500エラーになってしまいます。

mod_auth_mysql.so のロードを mod_auth_basic.so より前にしないと、500エラーになるということなので修正してみましたが、状況は変わらず(Apacheは再起動してます)。
こういうときは、ログを確認するのが基本ですね。 すると、こんなエラーが出ていました。

[Mon Sep 27 16:15:01 2010] [error] Internal error: pcfg_openfile() called with NULL filename
[Mon Sep 27 16:15:01 2010] [error] [client ::1] (9)Bad file descriptor: Could not open password file: (null)

要するに、ファイルベースで認証しようとしてエラーになっているようです。
そこで、.htaccess ファイルに以下のような記述を追加しました。

AuthBasicAuthoritative off
AuthUserFile NUL
AuthGroupFile NUL

FreeBSDなんかだと AuthUserFile /dev/null とするのですが、Windowsのヌルデバイスは NUL だということです。
これで認証は出来るようになりましたが、まだエラーが出ます。

[Mon Sep 27 18:16:17 2010] [error] [client ::1] (OS 1)ファンクションが間違っています。 : Could not open password file: D:/xampp/apache/NUL

うーむ。 ふつふつと OSを FreeBSDにしたい欲望が湧き上がってきますね。