#freeze
[[Apache/Tips/Digest 認証]]
#contents
----
* mod_auth_digest.soのセットアップ・インストール [#z72557da]
** 1.インストール方法 [#t9f27ffa]
Digest 認証を使うためには mod_auth_digest をセットアップする必要があります。Apache 1.x 系ではデフォルト(初期状態)では自動で組み込まれません。そこで、自分で apxs((自動的にapacheのモジュールをコンパイルしてくれる便利なツール、と覚えておけば実務的に問題ありません)) を使ってセットアップします。
** 2.インストール手順 [#ecd090e5]
コンパイル時に mod_auth_digest.so が静的モジュールとして組み込まれていれば、httpd.conf の中の
LoadModule digest_auth_module modules/mod_auth_digest.so
のコメントを外すだけで大丈夫です。
その他の場合は、apxs を使います。DSO(一般的に動的モジュールと呼ばれます)として組み込む場合は、以下の手順どおり進めてみてください。
まず、ソースを展開したディレクトリにします。仮に展開したディレクトリ名が " /usr/local/src/apache_1.3.xx" とすると、探したいファイル mod_auth_digest.c は ./src/modules/experimental に位置します。それと apxs のパスは /usr/local/apache/bin/apxs と仮定します。パスについては、各自の環境に合わせて、適当にセットアップします。
cd /usr/local/src/apache_1.3.xx/src/modules/experimental
/usr/local/apache/bin/apxs -D DEV_RANDOM -c ./mod_auth_digest.c
特にエラーが無ければ大丈夫です。
通常のモジュールであれば DEV_RANDAM(/dev/random を使った乱数生成のためのオプション)不要ですが、ここは暗号化のため必要になります。もし
/usr/local/apache/bin/apxs -c ./mod_auth_digest.c
だけしかオプションをつけないと、あとで .htaccess に Digest 認証のオプションを書き込んでも
.htaccess: Invalid command 'AuthDigestFile', perhaps mis-spelled or defined by a module not included
このようなエラーが error_log に記録されてしまいます。
で、話を戻しますが、
エラーがないというのは、こんな感じです。
/usr/bin/gcc -DLINUX=22 -I/usr/include/db1 -DUSE_HSREGEX -fpic -DSHARED_MODULE -I/usr/local/apache/include -DDEV_RANDOM -c ./mod_auth_digest.c
gcc -shared -o ./mod_auth_digest.so mod_auth_digest.o
次に mod_auth_digest.so を apache の modules ディレクトリにセットアップします。
/usr/local/apache/bin/apxs -i ./mod_auth_digest.so
こちらも次のようにエラーがなければ大丈夫です。
cp ./mod_auth_digest.so /usr/local/apache/libexec/mod_auth_digest.so
chmod 755 /usr/local/apache/libexec/mod_auth_digest.so
その次は httpd.conf の編集です。
LoadModule digest_auth_module libexec/mod_auth_digest.so
// AddModule mod_auth_digest.c
↑書き込む場所は適当で構いません。RPM で入っている apache にはモジュールの組み込みをクリアしてるところがあるので、一番末尾に書くのが無難かもしれません。私の場合は php の後ろに書いてます。
この2行を追加して apache の再起動(/usr/local/apache/bin/apachectl restart)をして、あとは完了です。