PerlのMVCモデルのフレームワーク。
http://search.cpan.org/dist/Catalyst-Manual/lib/Catalyst/Manual/Intro.pod#Install
上記のサイトを参考。
http://www.shadowcatsystems.co.uk/static/cat-install
から、インストール用スクリプトをダウンロードして実行。
perl cat-install
次に、Catalystで使うCPAN moduleをインストールする。make installを行うので、root権限で実行。また、lynx,ncftpもインストールしておく。
yast -i ncftp gcc gcc-c++
cpan perl -MCPAN -e 'install Catalyst::Devel'
CPANの設定で色々聞かれるけれど、ほとんどデフォルト値を使用。UTF-8を使っているので、以下の部分だけnoと返答。
Your terminal expects ISO-8859-1 (yes/no)? [yes] no
script/create.pl model Something script/create.pl view Stuff script/create.pl controller Yada
catalyst.pl MyApp cd MyApp script/myapp_create.pl controller Library::Login開発用サーバの起動。httpアクセスは、3000番ポートを使う。http://localhost:3000/
script/myapp_server.pl -r
アクセスすれば、雛形を確認できる。 -r オプションは、クラス更新時に自動的にサーバを再起動してくれる。
| option | description |
|---|---|
| -r | クラス更新時に、サーバを自動的に再起動する |
| -p | port番号を指定する。デフォルトは3000 |
CPAN Moduleの追加が必要。
Catalyst::Engine::Apache
apacheのmod_perl用設定ファイルに以下を追加。
PerlSwitches -I/var/www/MyApp/lib
PerlModule MyApp
<Location /path>
SetHandler modperl
PerlResponseHandler MyApp
</Location>
$c->response->redirect('URL');
system関数を使ったとき、Catalystの開発サーバ上だと、戻り値が常に -1 になった。 同じソースを、mod_perl で動かすと、きちんとした値が取れるので、system を使う場合には、mod_perl環境での開発が必要?
mod_perl の時と、開発サーバでは URL が変わる時があるので、どちらでも統一できるような環境変数が準備されている。
$c->request->base
[% base %]
<form action="[% base %]admin/topflash/add_feature" method="post" enctype="multipart/form-data"> <input type="file" name="upload_file" size="60" /> </form>
my $upload = $c->req->upload('upload_file'); # filename $upload->filename;