libapreq を使ってみる。
apache の mod を作っているが、C 言語初心者には敷居が高く挫折気味。そこで、libapreq を試してみることにした。
libapreq2 は apr, apr-util をベースにした共有ライブラリで、input filter API。意外に難しいこのあたりの取り回しで楽が出来るのでは・・・と期待。一般的には Perl バインディングとして使われているのだと思うが、そのあたりはまったく無視して、C の API として使っていきたいと思う。
libapreq is a shared library with associated modules for manipulating client request data via the Apache API. It also includes language bindings for Perl (Apache::Request and Apache::Cookie). Functionality includes:
* parsing of application/x-www-form-urlencoded data
* parsing of multipart/form-data
* parsing of HTTP cookiesDocumentation for the latest release of libapreq2 is located at http://httpd.apache.org/apreq/docs/libapreq2.
Apache HTTP Request Library - The Apache HTTP Server Project
ドキュメントはこちら。
libapreq2-2.13: libapreq2: Main Page
とりあえず、インストールしてみる。
# ./configure \ --with-apache2-apxs=/usr/local/apache2/bin/apxs ... # make # make test ... Can't locate Apache/TestMM.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .). BEGIN failed--compilation aborted. ... # make install
perl 関係のテストでエラーが出ているが、そもそも perl 環境はまともに構築されてないので、今回はこのエラーは無視する。
インストールが完了すると、以下のように mod がインストールされている。
$ ls /usr/local/apache2/modules/*apreq* /usr/local/apache2/modules/mod_apreq2.a /usr/local/apache2/modules/mod_apreq2.so /usr/local/apache2/modules/mod_apreq2.la
apreq2 のインストールプロセスでは httpd.conf へのモジュール追加をやってくれないので、手で以下のようにモジュールを追加する。
# vi /usr/local/apache2/conf/httpd.conf
LoadModule apreq_module modules/mod_apreq2.so