apache 拡張モジュールの作成
apache 拡張モジュールの作成方法をまとめておきます。
ubuntu 10.10 上で確認。
- ソース取得
- 今回は httpd-2.2.17 を使用。
- Download - The Apache HTTP Server Project
- httpd インストール
./configure --prefix=/home/yam/work/apache2 --enable-so make make install
-
- # --enable-so しないと、のちのち apache2/build/libtool が無いよって怒られるかも
- 拡張モジュールのビルドには libtool が必要なのです
- # --enable-so しないと、のちのち apache2/build/libtool が無いよって怒られるかも
- 拡張モジュールのテンプレートを作成
- 拡張モジュールの名前を仮に hello とする。
/home/yam/work/apache2/bin/apxs -g -n hello cd hello make make install
-
- #-g がテンプレート出力を指示
- #-n でモジュール名指定
- httpd.conf 修正
- 以下を設定ファイルに追加。
LoadModule hello_module modules/mod_hello.so <Location "/hello"> SetHandler hello </Location>
- apache を再起動
sudo /home/yam/work/apache2/bin/apachectl stop sudo /home/yam/work/apache2/bin/apachectl start
- ブラウザからアクセス。
- http://[IP アドレス]/hello にアクセス。
- 「The sample page from mod_hello.c」という文言が出力されれば OK。
以上。あとは mod_hello.c を修正してやりたいこと実現すべし。
- 補足。apxs コマンドの help 見たら、以下のコマンドで、拡張モジュールのビルド、インストール、設定ファイルへの追記まで行えるらしい。
/home/yam/work/apache2/bin/apxs -c -i -a mod_hello.c
-
- #-c がビルド指示
- #-i がインストール指示
- #-a が設定ファイルへの追記指示
- Location は手動で書く必要あるみたいだけど、LoadModule の部分はこれで自動化可能。