CGI版PHPでBASIC認証が効かない!
ロリポップで、PHP4 -> PHP5 にしたら、Pukiwiki のユーザー認証が動かなくなりました・・。
どうやらロリポップの PHP5 は CGI 版らしく、CGI版PHPでは、BASIC認証が使えないそうです。
http://jp2.php.net/manual/ja/features.http-auth.php
超困った!!
http://pukiwiki.sourceforge.jp/?%E7%B6%9A%E3%83%BB%E8%B3%AA%E5%95%8F%E7%AE%B1%2F198
にある mod_setenvif を使った方法を試してみるも、うまくいかず、IP 制限で乗り切る方法で上手くいきました。
修正するファイル:lib/auth.php の basic_auth 関数内
以下の記述を if (PKWK_READONLY || の前に追加します。
実際には編集したい人のIPアドレス、ユーザー名、パスワードを指定します。
if ($_SERVER['REMOTE_ADDR'] == 'xxx.xxx.xxx.xxx') { $_SERVER['PHP_AUTH_USER'] = 'username'; $_SERVER['PHP_AUTH_PW'] = 'password'; }
IPアドレスが変わるたびに変更しないといけないので注意。
SPAMよけには十分な上、IDとパスワードをいちいち入れなくていいので楽チン!