SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Webアプリケーションフレームワーク「Catalyst」入門

初めてのCatalyst入門(10)
Apache::Testを使用したテスト

mod_perl経由でCatalystアプリケーションをテストする方法

  • X ポスト
  • このエントリーをはてなブックマークに追加

Catalystアプリケーションの設定

 Apacheの設定ファイルにmod_perlを使用したCatalystアプリケーションの設定を記述します。今回は作成したサンプルアプリケーションであるApacheSampleを/testというURLに割り当てています。

CentOS上のApache 2.2の設定

 CentOS上では、Catalystアプリケーションの設定情報を「/etc/httpd/conf.d/perl.conf」に次のような内容で記述しました。

[リスト7]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>

 PerlSetEnvPerlSwitchesの行は不要かもしれませんが、環境によってエラーが出るなどした場合にはこれらの設定を検討してください。

 組み込みサーバではアクセスのたびにデバッグログが表示されていましたが、mod_perl経由で実行した場合にはApacheのerror_logファイルに出力されています。これらのデバッグログを表示させないようにするには、設定ファイルに「PerlSetEnv APACHESAMPLE_DEBUG 0」の設定を追記することで、デバッグログがerror_logファイルに出力されなくなります。

 また、「root/static」以下のファイルをApache側でサーブするためにAliasを設定しています。この場合には、Catalystで「Static::Simple」プラグインをロードする必要はありませんので、次のようにApacheSample.pmから削除します。

[リスト8]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」ファイルの末尾に、次の情報を追加しました。

[リスト9]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ファイルをあらかじめ読み込んでおく必要があります。

次のページ
Apacheの起動

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Webアプリケーションフレームワーク「Catalyst」入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 花田 善仁(ハナダ ヨシヒト)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5208 2010/06/23 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング