moduleをDSOでビルド、インストール

# cd /path/to/src/foo
# apxs -a -i -c mod_foo.c

おー、簡単。"-a"を指定するとhttpd.confに自動的にLoadModuleの設定も追加される。

上記コマンドで動かない場合

apacheに元々配布されてるmod_proxy、mod_sslなどをapacheインストール後に個別でDSOとしてインストールしようとしたら失敗してしまった。

# /usr/local/apache2/bin/apachectl configtest  
httpd: Syntax error on line 19 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_proxy.so into server: /usr/local/apache2/modules/mod_proxy.so: undefined symbol: ap_proxy_lb_workers

ap_proxy_lb_workersはSRC/modules/proxy/proxy_util.cの中にあった。
それを一緒にコンパイルすれば良いらしい。

# apxs -a -i -c mod_proxy.c proxy_util.c
# apxs -a -i -c mod_proxy_ajp.c proxy_util.c ajp_utils.c ajp_header.c ajp_msg.c ajp_link.c
# apxs -a -i -c mod_proxy_balancer.c proxy_util.c
# apachectl configtest
Syntax OK

できた。