Apache 2.4系移行苦労話(BASIC 認証編)[インターネットなこと]
(2012-05-24 12:57:21) by shinoda
BASIC認証がうまくいかない件は、ちょっと原因を間違えていた。
httpd -t でエラーが出なくなっているのに、BASIC 認証しているページにアクセスすると Internal Server Error になるので、Order ディレクティブを直さないといかんのだろうと漠然と思ってたんだが、さっきエラーログを確認すると、Invalid command 'AuthUserFile' のようなエラーが出てた。
結局、httpd -t では .htaccess の記述まではチェックしないんでエラーが出てなかっただけで、根は httpd.conf の修正と一緒。
AuthUserFile ディレクティブを解釈するための authn_file_module モジュールが読み込まれていないというだけの話で、例えば、
LoadModule authn_file_module modules/mod_authn_file.so
を httpd.conf に追加するだけでいい。
そもそも(別のディレクティブのエラーを消そうとして)、access_compat_module を既にロードしているので、Order ディレクティブを Require ディレクティブに修正する必要はなく、アクセスコントロールの記述はそのまま使えるということのようだ。
ということで、例えば
AuthUserFile /usr/local/hogehoge/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
という内容の .htaccess であれば、
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
というモジュールのロードを httpd.conf に追加することで、BASIC 認証も問題なく行えるようになった。
でも、まあ、これはうちの環境の話であって、場合によっては authz_host_module もロードしないといけないとかありそうだね。
つーか、今思ったんだけど、最初から外部モジュール全部ロードすりゃ良かったな。
全部ロードしても、そんなに重くなることもないやろ。2.2の時には内蔵してたんだし。
何か、session_cookie_module(mod_session_cookie.so)とか、env_module(mod_env.so)とか、この先必要になってハマったりとかありそうだしなあ。
コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る
Powered by
MT4i 3.0.8