perlのフレームワークでといえばCatalystですが、もう一つ有名な国産フレームワークSledgeをMacで使えるようにしてみたいと思います。
Sledgeはライブドアで開発されたWebフレームワークです。作者はmiyagawaさん。
特徴は、
- MVCフレームワーク
- 容易に拡張可能なプラグインアーキテクチャ
- MySQLやPostgreSQL等を利用したセッション管理
- フックによる拡張機能
- <ページコンポーネントやアクション単位での認証/li>
- CPANモジュールを利用することによる高い信頼性
- ライブドアのサービスを含む多くの商用サイトでの実績
Apache + mod_perlを動くようにする
SledgeはApaceh上で動きます。cgiかmod_perlが使える状態にしなければなりません。 MacOSX 10.4にはデフォルトでApacheが入っているかチェック。$ which httpdおお、すばらしぃ。問題はバージョン。mod_perlとApache2.x系は昔から相性が悪いとひょうばんなので、できれば1.3系で穏便に行きたいところ。
/usr/sbin/httpd
$ httpd -vなんだ、全然問題無いじゃん。あとはmod_perlの導入。 これまた、MacOSX 10.4にはmod_perlがデフォで入っているので、httpd.confで有効にしてあげれば良い。
Server version: Apache/1.3.33 (Darwin)
Server built: Jan 13 2006 08:49:59
最後の方に下記を追加$ sudo vi /etc/httpd/httpd.conf 239行目 #LoadModule perl_module libexec/httpd/libperl.so のコメントを外す LoadModule perl_module libexec/httpd/libperl.so
283行目 #AddModule mod_perl.c もコメントを外す AddModule mod_perl.c
IfModuleのmod_aliasはデフォルトで定義されているので、そこに混ぜても良いでしょう。 httpd.confの文法をチェックします。<IfModule mod_alias.c> Alias /perl/ /Library/WebServer/Documents/app/ Alias /cgi-perl/ /Library/WebServer/Documents/app/ </IfModule>
<IfModule mod_perl.c> <Location /perl> SetHandler perl-script PerlHandler Apache::Registry Options ExecCG PerlSendHeader On </Location> <Location /cgi-perl> SetHandler perl-script PerlModule Apache PerlHandler Apache::PerlRun Options ExecCGI PerlSendHeader On </Location> <Files */nph-*> PerlSendHeader Off </Files> </IfModule>
$ sudo /usr/sbin/apachectl configtest問題なければhttpdの再起動
Syntax OK
$ sudo /usr/sbin/apachectl restart設定変えるだけでOKでした。
/usr/sbin/apachectl restart: httpd restarted
Sledgeのインストール
SourceforgeのSledgeのページからダウンロードしておきます。 最新版はv1.11です。 次にCPANから必要なモジュールをインストールしておきます。$ sudo perl -MCPAN -e 'install Bundle::Sledge'結構モジュール数が多いので時間かかります。 終わったら、Sledgeのインストール。 Sledgeを解答したディレクトリに移り、make installします。
CPANからインストールしたモジュールが足りないと、make testでエラーになる場合がありますので、 適宣手動でインストールします。 なにがインストールされるかは、eg/prereq-modulesに書いてあります。 参考にさせて頂いたサイト http://www.thinkit.co.jp/free/tech/9/1/1.html$ perl Makefile.PL $ make $ make test $ sudo make install
コメント