以前Sledgeについて書いたんですが、サンプルが無くて動作確認して無かったので、「まるごとPerl vol.1」のサンプルを使用して動かして見ました。

実際に動かしてみる際に以前の設定から変更した所があるので、再度エントリします。

Apacheの設定

まず、mod_perlを有効にします。また、apacheのSetEnvを使いたいので、mod_envも有効にしておきます。

$ sudo vi /etc/httpd/httpd.conf
206行目
#LoadModule env_module         libexec/httpd/mod_env.so
コメントを外す
LoadModule env_module         libexec/httpd/mod_env.so
239行目
#LoadModule perl_module        libexec/httpd/libperl.so
コメントを外す
LoadModule perl_module        libexec/httpd/libperl.so
283行目
#AddModule mod_env.c
コメントを外す
AddModule mod_env.c
283行目
#AddModule mod_perl.c
コメントを外す
AddModule mod_perl.c

Sledgeでは、アプリケーション毎にサブドメインを切るのが王道なので、http://localhost/bbsではなくて、http://bbs.localhost/としたい。Apacheのvirtualhostを使えばいいのだが、localhostにサブドメインを加える場合、/etc/hostsの127.0.0.1とサブドメインを紐づける必要があります。

$ sudo vi /etc/hosts
127.0.0.1    localhost
の後ろにサブドメイン追加
127.0.0.1    localhost bbs.localhost

あとはVirtualHostの設定ですが、アプリの配置を終えた後に設定します。

Sledgeの導入

Sledgeの公式ページからダウンロード出来ますが、プラグインや追加モジュールが沢山あるので、下記SorceForgeのCVSから丸ごととってきた方がいいです。

http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/sledge/

画面の下の方にDownload tarbollというリンクがあるので、ここから落とします。(CVSでチェックアウトしてもいいです)

tarbollを解凍すると、Slege本体と追加モジュール、プラグインが沢山できますが、全部入れなくても良いです。必要に応じて追加しましょう。(その都度書こうかと思います)

まずはSledgeの導入です。以前書いた内容とちょっとだけ変わります。SledgeはCPANモジュールを多用していますので、始めにモジュールを追加しておきます。

$ sudo perl cpan_install.pl

今回のサンプルでは、Class::DBIやTime::Pieceを使っていますので、追加しておきます。他にも環境によって足りないモジュールがあるかも知れません。httpのエラーログに足りないモジュールがあった場合はログがかかれますので、もしあれば同様に追加して下さい。

$ sudo perl -MCPAN -e shell
cpan> install Class::DBI
cpan> install Time::Piece

モジュール導入が終わったら、Sledgeのインストールです。

$ perl Makefile.PL
$ make; make test;
$ sudo make install

make testは念の為です。あんまり気にしてません。勉強中なもので・・(ノ´∀`*)

アプリの配置とApacheの設定

まるごとPerl vol.1のサポートページからモジュールをダウンロードします。
何処に置くかは任意ですが、今回は/Users/Sledgeに配置。

この設定はアプリ作る度さわることになるので、/etc/httpd/users/virtualhost.confに切り出しておきました。

$ sudo vi /etc/httpd/users/virtualhost.conf
NameVirtualHost 127.0.0.1
<virtualhost bbs.localhost>
   ServerName bbs.localhost
   DocumentRoot /Users/Sledge/bbs/htdocs
   SetEnv  PERL5LIB /Users/Sledge/bbs/lib
   PerlSetEnv PERL5LIB /Users/Sledge/bbs/lib
   <location>
     SetHandler perl-script
     PerlHandler Apache::Registry
   </location>
   <directory /users/sledge/bbs/htdocs>
       DirectoryIndex index.cgi index.html
       AddHandler cgi-script .cgi
       Options +ExecCGI
       Order deny,allow
       Allow from all
   </directory>
</virtualhost>

設定はそれぞれの環境次第ではありますが、とりあえずコレで動きました。
もう少し色々試して見たい所ではあります。



mod_alias辺りは、他の設定次第で、違うところ見に行ったりします。

ちなみに、SledgeのサンプルはSorceforgeから落としたtarballの中にも3つ程あるので、参考に動かしてみてはいかがでしょう?

shopcartがオススメです。