Apacheの最近のブログ記事

日経Linux2008年7月号の「初めてのApacheモジュール」という連載にmod_cacheのことが載っていたので導入してみました。

CentOS 5.1+Apache 2.2.3の環境です。

#mkdir /var/cache/mod_disk_cache
#chown apache.apache /var/cache/mod_disk_cache
#chmod 700 /var/cache/mod_disk_cache
httpd.conf
CacheRoot /var/cache/mod_disk_cache
CacheEnable disk /

導入は簡単なのですが、効いて欲しいCGIで効いていない様子。

Cashing Guideを読んでみたけどcacheされる要件はみたしてます。

さらに調査。結局、グーグル先生によると原因は↓でした。

ASF Bugzilla - Bug 40805 mod_cache fails to retrieve objects cached for URLs which have been rewritten to target URLs with a query string

mod_rewriteしてるとダメなのですね。キャッシュに保存した時のキーとは異なるキーで取ってこようとするようです。

さて、原因がわかったので解決!といきたいところですが、そうすんなりいかないのがにわかLinuxユーザの痛いところ...

mod_cacheだけパッチが当たった状態にしたいのですが...とりあえずSRPMを取ってきました。

#wget http://rsync.atworks.co.jp/centos/5.1/updates/SRPMS/httpd-2.2.3-11.el5_1.centos.3.src.rpm
#rpm -ivh httpd-2.2.3-11.el5_1.centos.3.src.rpm

これで /usr/src/redhat/ の下にソースファイルのアーカイブ等が展開されました。

で、ちょうど日経Linux2008年7月号にはmod_chrootをrpmパッケージ化してみるような記事が載っていたのでざっと読んでみてrpmbuildを使うっぽいことを理解しました。

#cd /usr/src/redhat/
#rpmbuild -bc SPECS/httpd.spec

これで実行してみるとconfigure+make相当のことが実行されました。

なんとかなりそうな気がしてきました。

つづく