apache のモジュールを作る
apache のモジュールを作るのに参考になりそうなページの覚書。
aptitude - プログラマのチラシの裏
Apacheモジュール開発記 その0 - 時間こそ最も解決するべき問題なり
上記にかかれた手順以外に私の環境で必要だったのが、
# cat /etc/hosts
..
192.168.1.10 vaio.localdomain vaio
..
(mod名).conf, (mod名).load は、
/etc/apache2/mods-available/
/etc/apache2/mods-enabled/
の両方に必要。(片方はシンボリックリンクでいい)mods-availableに実体ファイルを置いて、mods-enabled にそのファイルのシンボリックリンクを置く。*1
apxs2 にてデプロイした mod の動作確認URLは、
というように、末尾に "/" が必要。
・・・これが一番はまった。(とほほ)
※ mod_dir が入ってれば勝手に補完されるはず。(多分)
apache2.2 より追加された、mod_dbd を使用すれば思ってるものが出来そうだ。たぶん。
漢(オトコ)のコンピュータ道: mod_dbd入門編
追記(2009-1-28):
mod そのものについては、
MODULE.JP - Apache & Perl Module Information.
http://module.jp/dist/InternetWeek2005-T16.pdf
がとても参考になった。
追記(2009-2-7):
コメント頂いて(ありがとうございます)、ちょっとぐぐってみたら、
各モジュールの設定ファイルは、 /etc/apache2/mods-available/ 配下にありますが、その設定ファイルを有効にするには、/etc/apache2/mods-enabled/ 配下にシンボリックリンクを作成する必要があります。
http://oshiete.nikkeibp.co.jp/kotaeru.php3?q=2347499
という記載なんかをみつけた。どうもそういうものらしい。シンボリックリンクの作成については、ln 使って作ればいいが、一応、a2enmod、a2dismod というコマンドが用意されている。以下のような動作をする。
debian:/etc/apache2/mods-enabled# ls cgi* cgid.conf cgid.load debian:/etc/apache2/mods-enabled# a2dismod cgid Module cgid disabled; run /etc/init.d/apache2 force-reload to fully disable. debian:/etc/apache2/mods-enabled# ls cgi* ls: cgi*: No such file or directory debian:/etc/apache2/mods-enabled# a2enmod cgid Module cgid installed; run /etc/init.d/apache2 force-reload to enable. debian:/etc/apache2/mods-enabled# ls cgi* cgid.conf cgid.load
a2enmod のソースの一部だけ引用。多少のチェックはするものの、動作としては、.conf と .load を ln -sf するだけのものだ。
52 for i in conf load; do 53 if [ -e $SYSCONFDIR/mods-available/$MODNAME.$i -a ! -e $SYSCONFDIR/mods-enabled/$MODNAME.$i ]; then 54 cd $SYSCONFDIR/mods-enabled; 55 ln -sf ../mods-available/$MODNAME.$i $MODNAME.$i; 56 fi 57 done 58 59 echo "Module $MODNAME installed; run /etc/init.d/apache2 force-reload to enable."
*1:コメントを頂いて修正