はじめてのApacheモジュール開発
C言語をなが〜い間書いてなかったので、最近ちょっと再勉強しはじめました。
で、手始めにおもしろそうなのでなんか作ってみっか。と思ってはじめたのがこれ。
![Apacheモジュール プログラミングガイド (Advanced Server‐side programmingシリーズ) Apacheモジュール プログラミングガイド (Advanced Server‐side programmingシリーズ)](https://images-fe.ssl-images-amazon.com/images/I/51NAAYPX54L._SL160_.jpg)
Apacheモジュール プログラミングガイド (Advanced Server‐side programmingシリーズ)
- 作者: 小山浩之
- 出版社/メーカー: 技術評論社
- 発売日: 2003/08/01
- メディア: 単行本
- 購入: 1人 クリック: 81回
- この商品を含むブログ (26件) を見る
え?Apacheのモジュールって簡単に作れるの?って、びっくりして軽くはじめてみました。
内容は、Apacheのモジュールを開発する方法なのですが、対象のバージョンとしては、
Apache1.3系に関して大部分
Apache2.0系を対象に少し
Apache2.2系に関しては記述されていない(そりゃ、ずっと前に発売されてるしね。)
とりあえず、ちょこちょこっとやってみる。これが簡単にできてしまうんですね。
でも、あんまCの勉強にはならない気が・・・
・メモリに関しては、Apacheのリソースプールを利用すると勝手に解放してくれます
・ファイル管理も同様に勝手に解放してくれます
・文字列処理もURLエスケーピングや正規表現などなどの豊富なAPIあり
・汎用データ構造として、伸展可能なリストなどなどが用意されている
え。Javaっすか?って思うほど。Cの醍醐味であるメモリの部分がやらなくていいとはね。
まァ、このブログの「楽にプログラミング」って目的にはそってるけどさァ
ま、とはいえ、構文はC言語だし、ごりごりと構造体を使うことも可能だからよしとするか。
とりあえず、雛型モジュール作り方のまとめ
1.Apacheをビルドします(versionはなんでもよし)
./configure --enable-module=so ←ダイナミックリンクでモジュールを作成するため
make
make install
2.起動/動作確認
apachectl -k start
ブラウザなり、コマンドラインなりでhttp://localhostを確認
3.apxsで雛型作成
./apxs -g -n testworld
Creating [DIR] testworld
Creating [FILE] testworld/Makefile
Creating [FILE] testworld/modules.mk
Creating [FILE] testworld/mod_testworld.c
Creating [FILE] testworld/.deps
4.ダイナミックリンク(スタティックリンクは別のやり方です。)
make
make install
5.httpd.confにモジュール読み込み設定
LoadModule testworld_module xxx/mod_testmodule.so
SetHandler helloworld
6.アクセス確認
http://localhost/hello
画面にメッセージ「」が表示されればOK