apxsを使ってモジュールを追加する
すでに稼働しているApache(ソースからbuild)にモジュールを追加したい場合が(まれに)ありますが、「configureオプションを編集して再度ソースからbuild」とか面倒でやってられません。そんな時はApacheをインストールした際にbinディレクトリにインストールされるapxsコマンドを使いましょう。
「mod_xxxx」というモジュールをapxsを使って追加インストールする基本的な手順は次のようになります。
$ cd /path/to/httpd-source/modules/modulename/ $ /path/to/apxs -c mod_xxxx.c $ sudo /path/to/apxs -i mod_xxxx.la
-cオプションはコンパイル、-iはインストールを意味します。オプションをまとめることもできます。
で、モジュールにも依るんだと思いますが、-iオプションでインストールしたときに
apxs:Error: Sorry, cannot determine bootstrap symbol name. apxs:Error: Please specify one with option `-n'.
と出た場合、-nオプションを使ってモジュール名(mod_xxxx)を明示的に指定します。このオプションは、apxsがモジュール名を自動的に検出しようとして失敗した場合のfallbackを指定するものです。
$ sudo /path/to/apxs -i -n xxxx mod_xxxx.la
たとえば、mod_davとmod_dav_fsを後付でインストールする場合は次のような感じ。複数のcファイルがある場合、先頭にmod_xxxx.cを指定する必要があるようです。
$ cd /path/to/httpd-source/modules/dav/main/ $ sudo /path/to/apxs -ci mod_dav.c liveprop.c props.c providers.c std_liveprop.c util.c util_lock.c $ cd ../fs/ $ sudo /path/to/apxs -ci mod_dav_fs.c dbm.c lock.c repos.c $
ちなみに、-aオプションを付けると、httpd.confにLoadModuleディレクティブを追加してくれます。-Aオプションの場合、先頭にハッシュ「#」付きでLoadModuleディレクティブが追加されます。