mod_perl 2

Back

 mod_perlで自家サーバーのPerlの処理を速くするぞぉ〜〜〜、、、と思ってmod_perlをなんとかかんとかインストール。だがしかし。仕様上、cgiwrap(suexecも同様)下のディレクトリではmod_perlが動かないということに、インストールしてから気がついたのであった。

 意味なし。
ともあれ非常にややこしかったし、作業メモを記念に残してみる。要はDSOを使ったmod_perlインストール。


apache2(DSO有効)
Perl

 ココからダウンロード。ソースを展開して、mod_perlのページドキュメント通りに最適化。
MP_AP_PREFIXにApache2のルートディレクトリを指定。(DSOはデフォルトでオン)

% perl Makefile.PL MP_AP_PREFIX=/usr/local/apache2 MP_INST_APACHE2=1
% make
% make test
# make install




【設定】

Apache2
 httpd.confにモジュール読み込みのための設定を追加する。

LoadModule perl_module modules/mod_perl.so
PerlModule Apache2


 mod_perlを有効にしたいディレクトリをhttpd.confで以下な感じで設定する。(詳細は割愛)

<IfModule mod_perl.c>
Alias /perl/ /Users/who/cgi-bin/
<Location /perl>
SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI
Allow from all
PerlSendHeader On
</Location>
</IfModule>



【起動/検証

Apache2を起動させる。起動しないようであれば、Apache2のエラーログを見てみること。
こちらに置かれてある確認用スクリプトmod_perl_test.txt(要は環境変数のチェックスクリプト)を拝借して、mod_perlが動くディレクトリにcgiとして設置。そのcgiをブラウザからアクセスしてみて、

It's running mod_perl!


と、表示されれば成功。

It's running CGI!


と、表示された場合はどこかがおかしいので各所チェックすること。


補足
 ライブラリ参照先が変わってしまうようなperlの再コンパイルを行ったときは、mod_perlもコンパイルし直さないといけないようである。


2003 10/20 updated / C's gallery OS X Tips