Hatena::Groupcatalyst

LAPISLAZULI HILL#Catalyst このページをアンテナに追加 RSSフィード

2006-12-23

[][]さくらインターネットCGICatalystを動かす設定(完全版?) さくらインターネットのCGIでCatalystを動かす設定(完全版?) - LAPISLAZULI HILL#Catalyst を含むブックマーク はてなブックマーク - さくらインターネットのCGIでCatalystを動かす設定(完全版?) - LAPISLAZULI HILL#Catalyst さくらインターネットのCGIでCatalystを動かす設定(完全版?) - LAPISLAZULI HILL#Catalyst のブックマークコメント

さくらインターネットでCatalystを動かす設定 - LAPISLAZULI HILL#Catalyst - Catalystグループの続きです.あれから半分あきらめていたんですが,ようやく思い通りのURLで公開できるようになったのでメモメモ

ぶっちゃけるとCatalyst Advent Calendar - Day 10の方法そのまんまですので,そちらを参考にしてもよし

下準備

CPANモジュールは~/perl/lib(/home/username/perl/lib)がインストール先,アプリケーションは~/MyApp(/home/username/MyApp)に作成したとして書きます

script/myApp_cgi.plの書き換え

apache環境変数を書き換えようと思ったんですが,できなかったのでuse libmoduleの検索パスを追加します

【~/MyApp/script/myapp_cgi.pl】

use lib '/home/username/perl/lib', "$FindBin::Bin/../lib";

書き換えてから,動作を確認してみました

> perl myapp_cgi.pl

@INC関係のエラーが出てなければ成功しているはずです

シンボリックリンクの作成

apache公開ディレクトリscriptディレクトリのシンボリックリンクを張ります

> cd ~/www
> ln -s ~/MyApp/script script

.htaccessの作成

作成するのは~/www/.htaccessです.http://username.sakura.ne.jp/アクセスできるように設定します.もちろんドメインアクセスできるように設定されていればそのドメインでok

AddHandler cgi-script .pl

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/?script/myapp_cgi.pl
RewriteRule ^(.*)$ script/myapp_cgi.pl/$1 [PT,L]

http://username.sakura.ne.jp/アクセスして動作していることを確認します

----

結局mod_rewriteの設定をよくわかってなかったのが敗因ですね.今後の課題としては複数のアプリケーションの稼働とサブドメインでの運用でしょうか

(追記)

こんなふうにするとディレクトリを分けてやれば2つでもいけました

それぞれ~/www/myappと~/www/myapp2の下にscriptディレクトリのシンボリックリンク張ってます

AddHandler cgi-script .pl

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/myapp2/?script/myapp2_cgi.pl
RewriteRule ^myapp2/(.*)$ myapp2/script/myapp2_cgi.pl/$1 [PT,L]

RewriteCond %{REQUEST_URI} !^/myapp/?script/myapp_cgi.pl
RewriteRule ^myapp/(.*)$ myapp/script/myapp_cgi.pl/$1 [PT,L]