2011年7月4日月曜日

mod_perlをApacheに組み込む(Linux)

mod_perlとは、Apacheの追加機能(モジュール)の一つで、Perl言語で書かれたプログラムを高速に実行する機能です。
CGIでPerlスクリプトを実行すると、呼び出しごとにPerlを起動してスクリプトを読み込むために時間がかかりますが、mod_perlを使うと、変換後のプログラムをメモリ上にキャッシュすることができます。


■mod_perlのインストール
yumコマンドでインストール。
# yum -y install mod_perl

yumコマンドが使えないときは、ダウンロード⇒展開⇒make⇒make test⇒make install でもインストールできます。


■Apacheの設定ファイルを変更
ここでは、全てのcgiファイルに対して、mod_perlを使うよう設定します。
httpd.confの編集
LoadModule perl_module modules/mod_perl.so

PerlModule ModPerl::Registry
<Files *.cgi>
SetHandler perl-script
PerlOptions +ParseHeaders
PerlResponseHandler ModPerl::Registry
</Files>

後はApacheを再起動して動作確認すれば良いです。


■備忘録
mod_perlの環境で、DBD::OracleでOracleに接続しようとするとエラーが出る。
ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var or PATH (Windows) and or NLS settings, permissions, etc. at /var/www/cgi-bin/dbtest.cgi line 7.

調べてみると、同じような原因でつまづいている人が多いみたいです。
http://www.gossamer-threads.com/lists/modperl/modperl/84070
http://q.hatena.ne.jp/1214968851

半日ほど使ってあれこれやってみたのですが、いまだ解決せず・・・。

0 件のコメント:

コメントを投稿