>> i's SQUARE >> Webサービス構築ガイド >> Linuxにmod_perlをインストールする

Linuxにmod_perlをインストールする

mod_perl はPerlをApacheモジュールとして動かすことが可能です。
mod_perl で動作するPerlコードは、最初にロードされる時に1度だけコンパイルされ、その後はメモリに常駐(キャッシュ)します。
CGIで動かしていたPerlコードが、これを導入するだけでオーバーヘッドが解消され、すさまじく高速になります。



■ダウンロード

mod_perl のページから Apache 2.0以上のバージョンを利用している場合は mod_perl 2.0(mod_perl-2.0-current.tar.gz)
それ以外は mod_perl 1.0(mod_perl-1.0-current.tar.gz) をダウンロードします。



■インストール

・mod_perlのコンパイル&インストール

tar zxvf mod_perl-2.0-gurrent.tar.gz
cd mod_perl-2.0.3
perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/local/apache2/bin/apxs EVERYTHING=1
make
make install
WITH_APXSオプションでapxsモジュールのあるパスを指定します。

・httpd.confを修正する
LoadModule perl_module modules/mod_perl.so
httpd.confに上記を追加後、Apacheを再起動します。



■CGI互換で動作させる

mod_perlはインストールしただけでは効果はなく、 どのプログラムを mod_perl 環境下で動作させるかを設定する必要があります。
とりあえずCGI互換で動作させるには、.htaccess に以下のように書きます。 (拡張子が.cgiのファイルのみ、mod_perlを使う例)

<Files *.cgi>
SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI
Allow from All
PerlSendHeader On
</Files>
・通常のPerlとmod_perl版の実行結果の違いについて

通常のCGIでは、プログラムを実行すると全てメモリがクリアされますが、 mod_perl版では、スクリプトをメモリに保持しますが、コード内の変数も同様に保持します。
1回目のアクセスでは通常版、mod_perl版ともに同様の結果になりますが、 変数を初期化してなかったりスクリプトの組み方次第では、 2回目以降のアクセスで変数の値が通常版とmod_pel版で変わってくるケースもあります。
そこで、mod_perl版では変数の初期化や変数のスコープを特に注意してプログラミングする必要があります。



修羅場が続くと、殺気立ち怒鳴り声が多くなる
さらに続くと、口数が少なくなり愚痴が多くなり、どんよりとした空気に包まれる
もっと続くと、やたらと陽気になり、元気な声が響き渡るようになる
この状態を「プログラマーズ・ハイ」と呼ぶ
倒れる人が出てくるのはこの辺りからだ
by プログラマーの格言