lighttpd開発1日目
lighttpd(httpサーバ)のモジュール開発を調べてみました。
参考サイト
- http://redmine.lighttpd.net/wiki/lighttpd/HowToWriteALighttpdPlugin
- http://n-tama.spaces.live.com/blog/cns!63BE3BB88F1818D1!502.entry
環境
- debian-lenny(ARM)
必要なソフトは↓なので入れる
- automake 1.8.x or higher
- autoconf 2.57 or higher
- libtool 1.5.x or higher
注意点としてpkg-configを入れないと(ほとんどの環境で普通に入ってるけど)「autoreconf -fi」の実行でコケる(コレで3時間ほど悩みました)
モジュールのソースコードを作る(ここではスケルトンの例)
ソースファイルの追加
$ cd src/ $ cp mod_skeleton.c mod_counter.c $ vi mod_counter.c :%s/skeleton/counter/g
作成したモジュールがコンパイルされるように
src/Makefile.amの修正をする
lib_LTLIBRARIES += mod_counter.la mod_counter_la_SOURCES = mod_counter.c mod_counter_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined mod_counter_la_LIBADD = $(common_libadd)
試験モジュールのビルド
autoreconf -fi ./configure --enable-maintainer-mode make
試験モジュールを使うように設定ファイルを変更する
vi tests/lighttpd.conf #モジュールの追加 server.modules = ( …… "mod_counter" ) #モジュール設定の追加 counter.array = (".html")
以下make installしないで実行する方法のまとめ
環境変数(SRCDIR)の設定
export SRCDIR=/root/lighttpd-1.4.23
設定ファイルを編集する
vi tests/lighttpd.conf server.document-root = env.SRCDIR + "/tmp/lighttpd/docroot/" ←docrootの場所 server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" ←ログの場所 #server.bind = "localhost" ←127.0.0.1以外からも受け付けるようにコメントアウト
関連ディレクトリを作る
mkdir -p tmp/lighttpd/docroot/ mkdir -p tmp/lighttpd/logs/
試験起動
./src/lighttpd -f ./tests/lighttpd.conf -m ./src/.libs/ -D