以前Sledgeについて書いたんですが、サンプルが無くて動作確認して無かったので、「まるごとPerl vol.1」のサンプルを使用して動かして見ました。
実際に動かしてみる際に以前の設定から変更した所があるので、再度エントリします。
Apacheの設定
まず、mod_perlを有効にします。また、apacheのSetEnvを使いたいので、mod_envも有効にしておきます。
$ sudo vi /etc/httpd/httpd.conf206行目 #LoadModule env_module libexec/httpd/mod_env.so コメントを外す LoadModule env_module libexec/httpd/mod_env.so239行目 #LoadModule perl_module libexec/httpd/libperl.so コメントを外す LoadModule perl_module libexec/httpd/libperl.so283行目 #AddModule mod_env.c コメントを外す AddModule mod_env.c283行目 #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/hosts127.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 shellcpan> 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.confNameVirtualHost 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がオススメです。
コメント