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にしたら直った)