今更ながら、mod_dosdetector-forkをApache 2.0で動かすための方法をまとめておく。少しだけソースコードを編集する必要がある。
必要なもの:
- mod_dosdetector-forkのapache-2.0ブランチ
- Apache 2.2 のソースコード Download – The Apache HTTP Server Project
- ソースコードを編集するためのエディタ(手動で編集する場合)
- Linux(他のUNIX系のOSでも動くかも)
一応、自動で編集するスクリプトも作ってみたが、先に手動で編集する場合の手順をざっと説明しておく。
手順1.
mod_dosdetector.c をエディタで開き、/* code for apache 2.0 */ というコメントが書いてある部分に次の1行を書き加える。
#include "apache20.h"手順2.
Apache 2.2のソースを展開して srclib/apr/shmem/unix/shm.c をエディタで開き、関数apr_shm_removeの定義部分をコピーして、手順1で編集した部分の直後にペーストする。最終的にこんな感じになる。
/* code for apache 2.0 */ #include "apache20.h" APR_DECLARE(apr_status_t) apr_shm_remove(const char *filename, apr_pool_t *pool) { //..略.. }
以上で必要な編集作業は終わり。ここまでの手順を自動化するスクリプトがapache20.plという名前で入っているので、これを実行してもいい。
# 展開したApache 2.2のソースディレクトリを指定する perl apache20.pl path/to/httpd-2.2.x
あとは通常通りのインストール手順でOK。
#apxsが/usr/sbinに入っている場合 #コンパイル make PATH=/usr/sbin:$PATH #インストール make PATH=/usr/sbin:$PATH install
動作確認は次の環境で行った。
- ソースコードのコピー元: Apache 2.2.21
- 動作: Apache 2.0.64 on CentOS 5
- 動作: Apache 2.0.52 on CentOS 4
今後どの程度メンテナンスを行っていくかは不明なので、そこは予めご了承いただきたい。あと2.2側のコード変更によっては自動化スクリプトは動かなくなる可能性があるので、そのときは適宜手動で対応のこと。
