Apache2.4.2 が出たので、インストールついでに mod_sed を試してみたいと思います。
ダウンロードしたソースをコンパイルするわけですが APR を入れていないと configure でエラーになります。
$ ./configure --prefix=/usr/local/apache242
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
Configuring Apache Portable Runtime library ...
checking for APR... no
configure: error: APR not found. Please read the documentation.
下記のページを参考に apr を入れてコンパイルします。
[参考]
Apache 2.4 で mod_lua を使ってみる
/usr/local/apache242 に入れます。
$ ./configure --prefix=/usr/local/apache242 \ --with-apr=/usr/local/apr-httpd/ \ --with-apr-util=/usr/local/apr-util-httpd/ $ make $ sudo make install
最後に mod_sed のモジュールを有効にします。
$ vi /usr/local/apache242/conf/httpd.conf
コメントを外します。
#LoadModule sed_module modules/mod_sed.so
これでインストールは終了です。
次に実際の動作のための mod_sed の設定をします。 mod_sed は、入力と出力の内容に対して sed コマンドを使うように置換することができます。
入力と出力は使うディレクティブが違うだけなので 簡単に試せる出力で使ってみます。
次のように設定します。 AddOutputFilter で、拡張子 html に対して Sed フィルタを指定しています。
<IfModule sed_module> <Directory "/usr/local/apache242/htdocs/sed"> AddOutputFilter Sed html OutputSed "s/monday/MON/g" OutputSed "s/sunday/SUN/g" </Directory> </IfModule>
/usr/local/apache242/htdocs/sed にある .html のファイルは "monday","sunday" を出力すると "MON","SUN" に置換されます。
試してみます。次のファイルを用意。
$ cat /usr/local/apache242/htdocs/sed/test.html
<body>
sunday monday tuesday wednesday thursday friday saturday
</body>
アクセスします。
$ wget -q --no-proxy -O - http://localhost/sed/test.html
<body>
SUN MON tuesday wednesday thursday friday saturday
</body>
sunday monday が SUN MON に変わりました。