Apache Moduleの作り方(2)
・その6
Segmentation Faultなどが発生してもログには1行しか吐かれないし、デーモンをgdbでデバッグするのは大変。(面倒であきらめた)
せめて簡単にバックトレースを出したい、ということで
mod_backtrace
を使った。
ソースはここから取ってくる。
これをコンパイルするためには、
–enable-exception-hook
というオプションを付けて、apacheをconfigureしないといけないらしい。
apacheはパッケージからインストールしているので、src RPMをいじって対処することにする。
1.リポジトリ(IIJとか)からsrc.rpmをとってきて、
rpm -ivh httpd-2.2.3-11.el5_2.centos.4.src.rpm
などとしてソースをインストール。(事前にmkdir /usr/src/redhatしておく)
2./usr/src/redhat/SPECS/httpd.specにあるspecファイルから、configureをしている箇所を探し
–enable-exception-hook
を加える。
3.rpmbuild -bb –clean /usr/src/redhat/SPECS/httpd.spec
でhttpdとhttpd-develのrpmができる。
(バージョンを変えていないので紛らわしいが自分だけしか使わないので気にしなーい)
rpm -Uvh で上書きインストール。
4.モジュールは
apxs -ic mod_backtrace.c
でインストールする。
5.httpd.confに
LoadModule backtrace_module modules/mod_backtrace.so
EnableExceptionHook On
を加える。
参考にしたサイト
カスタムRPMの作成第1回:カスタムRPMの基礎とspecファイル
http://www.stackasterisk.jp/tech/systemManagement/rpm01_01.jsp
カスタムRPMの作成第2回:rpmbuildとtarballからのカスタムRPM作成
http://www.stackasterisk.jp/tech/systemManagement/rpm02_01.jsp