理系学生日記

おまえはいつまで学生気分なのか

mod_auth_cookie (インストール編)

mod_auth_cookie は,クッキーによって Basic 認証を行うというステキモジュールです. -http://modauthcookie.weebly.com/ HTTP リクエストに Cookie ヘッダが設定されており,かつ指定したキーが入っていた場合,リクエストを受信した Apache は内部でその値を Authorization ヘッダに設定して Basic 認証を行えるようになります.mod_perl とか使えばすぐにできるのかもしれませんが...

セキュリティ的にどうなのって声もありそうですが,そもそも Base64 変換しかしない Basic 認証なんだから文句を言われるのは Basic 認証であるわけですし,気になるなら https 使えやってことにします.クッキーはファイルとしてローカルに残すとセキュリティ的にアウトだろとかあると思うんですけど,いろいろあるんだ気にするな!!!!

よし,まずはインストールだ!

**インストール

少なくとも Ubuntu のリポジトリには mod_auth_cookie はないようですし,deb ファイルもなさそうなので,自分でビルドすることにします.モジュールのビルドには apxs2 が必要っぽいので,まずは apxs2 が同梱されている apache2-threaded-dev をインストールします *1

|tcsh| $ sudo apt-get install apache2-threaded-dev ||<

次にいよいよビルドに入ります.tar ボールを展開します.

|tcsh| $ wget http://opensource.weebly.com/mod_auth_cookie/mod_auth_cookie-0.1-apache2.tar.gz $ tar xzvf mod_auth_cookie-0.1-apache2.tar.gz $ cd mod_auth_cookie-0.1-apache2 ||<

Makefile を見ると,apxs2 ではなく apxs を使用しようとしているので,これを apxs2 に修正します.

|tcsh| $ diff -u Makefile.orig Makefile --- Makefile.orig 2008-12-20 23:53:10.000000000 +0900 +++ Makefile 2008-12-20 23:55:28.000000000 +0900 @@ -1,6 +1,4 @@ -APXS=apxs -# location of apxs, if not in path -#APXS=/usr/local/apache2/bin/apxs +APXS=/usr/bin/apxs2

SOURCES=mod_auth_cookie.c TARGETS=$(SOURCES:.c=.la) ||<

後は make; make install するだけです.

|tcsh| $ make $ sudo make install /usr/bin/apxs2 -i mod_auth_cookie.la /usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' mod_auth_cookie.la /usr/lib/apache2/modules /usr/share/apr-1.0/build/libtool --mode=install cp mod_auth_cookie.la /usr/lib/apache2/modules/ cp .libs/mod_auth_cookie.so /usr/lib/apache2/modules/mod_auth_cookie.so cp .libs/mod_auth_cookie.lai /usr/lib/apache2/modules/mod_auth_cookie.la

PATH="$PATH:/sbin" ldconfig -n /usr/lib/apache2/modules

Libraries have been installed in: /usr/lib/apache2/modules

If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the -LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to theLD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the LD_RUN_PATH' environment variable during linking - use the-Wl,--rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

chmod 644 /usr/lib/apache2/modules/mod_auth_cookie.so ||< 今日はここまで.

*1:Prefork MPM を使っている場合は apache2-prefork-dev にすべきだと重います