ソースインストールされたApacheでは、条件さえクリアしていれば、あとから手動でモジュールを追加することも可能です。今回は、cookieをログに出す時に使うモジュールを例に取って、手順を見てみます。
【現状の確認】
$ /usr/local/apache2/bin/httpd -M usertrack_module (shared)
が含まれていない事を確認。 インストールが完了すると、これが入ります。
$ /usr/local/apache2/bin/httpd -l
mod_so.c がある事を確認。これがないとモジュールの追加はできません。
httpdを最初からインストールし直す事になります。
【対象のモジュール】
モジュール mod_usertrack
詳細はこちら(http://japache.infoscience.co.jp/japanese/manual/mod/mod_usertrack.html)
【既存ファイルのバックアップ】
cp等で取っておくのが安全です。
ソースのバックアップ
# cp -rp /usr/local/src/httpd-2.2.21 /usr/local/src/httpd-2.2.21_20140619
httpd.confのバックアップ
# cp -rp /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.20140619
では、モジュール追加と行きましょうか!
【コンパイル】
対象モジュールを探します。通常、module配下にあるので探しましょう。
移動して、
cd /usr/local/src/httpd-2.2.21/modules/metadata/
apxsコマンドです。
ちなみに、オプションは以下です。
Usage: apxs -g [-S <var>=<val>] -n <modname> apxs -q [-S <var>=<val>] <query> ... apxs -c [-S <var>=<val>] [-o <dsofile>] [-D <name>[=<value>]] [-I <incdir>] [-L <libdir>] [-l <libname>] [-Wc,<flags>] [-Wl,<flags>] [-p] <files> ... apxs -i [-S <var>=<val>] [-a] [-A] [-n <modname>] <dsofile> ... apxs -e [-S <var>=<val>] [-a] [-A] [-n <modname>] <dsofile> ...
これで実行。
/usr/local/apache2/bin/apxs -c mod_usertrack.c
結果
これによって、 mod_usertrack.slo や mod_usertrack.lo、 mod_usertrack.la が新しく出来ていると思います。
【インストール】
以下を実行します。
/usr/local/apache2/bin/apxs -ian usertrack mod_usertrack.la
結果
〜略〜 See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- chmod 755 /usr/local/apache2/modules/mod_usertrack.so [activating module `usertrack' in /usr/local/apache2/conf/httpd.conf]
自動でhttpd.confにモジュールも追加してくれた模様。
# diff /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.20140619 55d54 < LoadModule usertrack_module modules/mod_usertrack.so
diffするとありました。
【設定ファイルの読み込み】
# /etc/init.d/httpd graceful
【インストールの確認】
$ /usr/local/apache2/bin/httpd -M
usertrack_module (shared) が入ったのを確認!