lighttpd モジュール開発 メモ

サンプルを読みながら作った時のメモ

	plugin_configを格納するarrayが必要である
	このarrayをmod_*_setdefaults関数で設定する必要がある(This array will be filled by the mod_*_setdefaults function)
	このarrayをmod_*_free関数でfreeする必要がある(and needs to be freed by the mod_*_free function)
	SETDEFAULTS_FUNCを追加する必要がある。SETDEFAULTS_FUNCでlighttpd.confの設定を取得してplugin_configに当てはめる
	(We also need to add a new set of default functions (SETDEFAULTS_FUNC) to get the configuration from the lighttpd.conf file into our plugin_config.)

1.mod_ooを作る

2. src/Makefile.amの書き換え (追加)

	lib_LTLIBRARIES += mod_helloworld.la
	mod_helloworld_la_SOURCES = mod_helloworld.c
	mod_helloworld_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
	mod_helloworld_la_LIBADD = $(common_libadd)

3 make

4 # vi /etc/lighttpd/modules.conf

2か所書き換え

		server.modules = (
	  "mod_access",
	#  "mod_alias",
	#  "mod_auth",
	#  "mod_evasive",
	#  "mod_redirect",
	#  "mod_rewrite",
	#  "mod_setenv",
	#  "mod_usertrack",
	"mod_counter",
	"mod_helloworld",
	)

	##
	## mod_helloworld
	##
	include "conf.d/helloworld.conf"

5# vi /etc/lighttpd/conf.d/helloworld.conf

プログラムの流れ

	URIHANDLER_FUNC(cgi_is_handled) 
	↓
	cgi_create_env
	↓
	cgi_handle_fdevent
	↓

個別のモジュールをコンパイルするときに良く使ったコンパイルコマンド

3つのコマンドをシェルスクリプトにして叩いてた

	$ make mod_helloworld.o
	$ gcc -shared -o mod_helloworld.so mod_helloworld.o
	$ /usr/bin/install -c mod_helloworld.so /usr/local/lib/mod_helloworld.so

全体をコンパイルするときに良く使ったコンパイルコマンド

	make clean
	cd ../
	make
	autoreconf -fi
	aclocal
	./configure
	make install

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-08-02 (火) 10:38:32 (2879d)