CentOS 5.4は未だにperl-5.8.8なので、perl-5.10.1をソースからインストールした。この作業は簡単なので詳細は省く。
$ tar jxvf perl-5.10.1.tar.bz2 $ cd perl-5.10.1 $ ./Configure -de $ make $ make test $ sudo make install
しかし標準でインストールされるmod_perlはあくまでperl-5.8.8用にビルドされている。本当ならSRPMを落としてきてリビルドするのがいいのだが、面倒なのでmod_perlのソースからインストールする。
mod_perlのインストールにはapxsが必要だ。これはhttpd-develパッケージに入っている。
$ sudo yum install httpd-devel
後はいつもの手順通り、mod_perlのインストールだ。
$ wget http://perl.apache.org/dist/mod_perl-2.0-current.tar.gz $ tar mod_perl-2.0-current.tar.gz $ cd mod_perl-2.0.4 $ perl Makefile.PL MP_APXS=/usr/sbin/apxs $ make && make test $ sudo make install
ハイライトした部分でMP_APXSを指定するのを忘れないようにしよう。実はここのmake testでエラーが出まくったりしたんだが、今回はテスト用サーバなので無視してmake installしてしまった。
後は、apacheの設定ファイルを書き換えれば完了だ。CentOSではmod_perlの設定ファイルは/etc/httpd/conf.d/perl.confにある。
LoadModule perl_module modules/mod_perl.so
<Location /perl-status>
    SetHandler perl-script
    PerlResponseHandler Apache2::Status
    Order deny,allow
    Deny from all
    Allow from localhost
</Location>
PerlSwitches -I/home/delphinus/catalyst/MyApp/lib
PerlLoadModule MyApp
<Location /myapp>
    SetHandler perl-script
    PerlResponseHandler MyApp
</Location>
ここではCatalystベースのアプリを登録している。11行目以降は、登録するアプリケーションによって変わるだろう。この設定でhttp://localhost/myapp/を開くとアプリケーションのトップページが現れる。http://localhost/perl-status/では現在読み込まれているモジュールなど、mod_perlの状態を確認することが出来る。
蛇足だが、テンプレートを保存しているディレクトリはapacheの起動ユーザー(普通はapache)から見えるようにしておこう。肝心のホームディレクトリ(/home/delphinus)のパーミッションが標準では0700になっていて、これで結構ハマった。(0755にしたら直った)
