Catalystアプリケーションの設定
Apacheの設定ファイルにmod_perlを使用したCatalystアプリケーションの設定を記述します。今回は作成したサンプルアプリケーションであるApacheSampleを/testというURLに割り当てています。
CentOS上のApache 2.2の設定
CentOS上では、Catalystアプリケーションの設定情報を「/etc/httpd/conf.d/perl.conf」に次のような内容で記述しました。
# ApacheSampleのホームパス PerlSetEnv APACHESAMPLE_HOME /home/test/ApacheSample # ApacheSampleの設定ファイル PerlSetEnv APACHESAMPLE_CONFIG /home/test/ApacheSample/apachesample.conf # デバッグログをApacheのエラーログに出力しない PerlSetEnv APACHESAMPLE_DEBUG 0 # ApacheSampleアプリケーションのモジュールをパスに追加 PerlSwitches -I/home/test/ApacheSample/lib # ApacheSampleアプリケーション PerlModule ApacheSample <Location /test> SetHandler perl-script PerlResponseHandler ApacheSample </Location> # イメージなどが参照できるようにエイリアスを設定 Alias /test/static /home/test/ApacheSample/root/static # 設定によってはアクセス権を許可する必要がある <Location "/test/static"> SetHandler default-handler Order allow,deny Allow from all </Location>
PerlSetEnv
とPerlSwitches
の行は不要かもしれませんが、環境によってエラーが出るなどした場合にはこれらの設定を検討してください。
組み込みサーバではアクセスのたびにデバッグログが表示されていましたが、mod_perl経由で実行した場合にはApacheのerror_logファイルに出力されています。これらのデバッグログを表示させないようにするには、設定ファイルに「PerlSetEnv APACHESAMPLE_DEBUG 0
」の設定を追記することで、デバッグログがerror_logファイルに出力されなくなります。
また、「root/static」以下のファイルをApache側でサーブするためにAliasを設定しています。この場合には、Catalystで「Static::Simple
」プラグインをロードする必要はありませんので、次のようにApacheSample.pmから削除します。
package ApacheSample; use Moose; use namespace::autoclean; use Catalyst::Runtime 5.80; # 省略 # Static::Simpleを削除 use Catalyst qw/ -Debug ConfigLoader /;
Windows上のApache 2.2の設定
Windows上では、「C:\Apache2.2\conf\httpd.conf」ファイルの末尾に、次の情報を追加しました。
# ActivePerlのDLLを追加 LoadFile C:/Perl/bin/perl58.dll # mod_perlを読み込むように指定 LoadModule perl_module modules/mod_perl.so # ApacheSampleのホームパス PerlSetEnv APACHESAMPLE_HOME C:/CodeZine/ApacheSample # ApacheSampleの設定ファイル PerlSetEnv APACHESAMPLE_CONFIG C:/CodeZine/ApacheSample/apachesample.conf # デバッグログをApacheのエラーログに出力しない PerlSetEnv APACHESAMPLE_DEBUG 0 # ApacheSampleアプリケーションのモジュールをパスに追加 PerlSwitches -IC:/CodeZine/ApacheSample/lib # ApacheSampleアプリケーション PerlModule ApacheSample <Location /test> SetHandler perl-script PerlResponseHandler ApacheSample </Location> # イメージなどが参照できるようにエイリアスを設定 Alias /test/static C:/CodeZine/ApacheSample/root/static # 設定によってはアクセス権を許可する必要がある <Location "/test/static"> SetHandler default-handler Order allow,deny Allow from all </Location>
基本的な設定は、CentOSのものとほぼ同じですが、Windows上のActivePerlを使用する場合には、mod_perlを読み込む前にperlのDLLファイルをあらかじめ読み込んでおく必要があります。