Apache 2.4系移行苦労話(BASIC 認証編)


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)とか、この先必要になってハマったりとかありそうだしなあ。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Apache 2.4系移行苦労話(BASIC 認証編)

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/2121

コメントする

このブログ記事について

このページは、shinodaが2012年5月24日 12:57に書いたブログ記事です。

ひとつ前のブログ記事は「Apache を 2.2系から 2.4系に上げて大ごとになった(^^;」です。

次のブログ記事は「5/13 対あけぼの戦 6-7xで負け」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら