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]

2006-11-22

[][]apt-getむにゃむにゃ apt-getむにゃむにゃ - LAPISLAZULI HILL#Catalyst を含むブックマーク はてなブックマーク - apt-getむにゃむにゃ - LAPISLAZULI HILL#Catalyst apt-getむにゃむにゃ - LAPISLAZULI HILL#Catalyst のブックマークコメント

% sudo apt-get install unzip less wget ftp lynx make build-essential gcc file gnupg
% sudo apt-get install mysql-server

MisawaMisawa2012/07/21 19:04Aw, this was a really nice post. In thohugt I would like to put in writing like this moreover – taking time and actual effort to make a very good article… but what can I say… I procrastinate alot and under no circumstances appear to get one thing done.

udfpydudfpyd2012/07/22 18:43nHGKFZ <a href="http://qwasqkpmujvk.com/">qwasqkpmujvk</a>

rvginxacrvginxac2012/07/24 07:54nM24gg <a href="http://qurwinwyhmtk.com/">qurwinwyhmtk</a>

ywxwpavvxywxwpavvx2012/07/24 12:31CJZrCe , [url=http://zntyhtlxbmuz.com/]zntyhtlxbmuz[/url], [link=http://winpkjwukdll.com/]winpkjwukdll[/link], http://mtybhpydofms.com/

トラックバック - http://catalyst.g.hatena.ne.jp/lapis25/20061122

2006-11-21

[][]DBIC系のPurePerlでのインストールに挫折気味 DBIC系のPurePerlでのインストールに挫折気味 - LAPISLAZULI HILL#Catalyst を含むブックマーク はてなブックマーク - DBIC系のPurePerlでのインストールに挫折気味 - LAPISLAZULI HILL#Catalyst DBIC系のPurePerlでのインストールに挫折気味 - LAPISLAZULI HILL#Catalyst のブックマークコメント

すべてDLしてコピー.その際MANIFESTを見てXSモジュールじゃないか確認.最悪ビルドしたのをコピーするのも手だが…

入れたのはこのあたり…

  • DBIx::Class
    • Class::C3
    • Algorithm::C3
    • Carp::Clan
    • Class::Data::Accessor
  • DBIx::Class::Loader(::mysql or ::SQLite)
    • Lingua::EN::Inflect
    • DBI
    • DBD::mysql
    • SQL::Abstract
    • SQL::Abstract::Limit
    • Data::Page
    • Class::Accessor::Chained
  • DBIx::Class::Schema::Loader

DBI::Pureperl

http://search.cpan.org/~timb/DBI-1.53/lib/DBI/PurePerl.pm

myapp_server.plのbegin節に$ENV{DBI_PUREPERL}=2を書いておく

DBI::HogeHogeが入らない

DBI自体はokだったんだけど,DBI::mysqlとかがxsじゃないとムリっぽい.なんにせよこのあたりがPurePerlで入ったとしても使い物にならない速度の可能性が


[][]CatInABoxを試す#1 CatInABoxを試す#1 - LAPISLAZULI HILL#Catalyst を含むブックマーク はてなブックマーク - CatInABoxを試す#1 - LAPISLAZULI HILL#Catalyst CatInABoxを試す#1 - LAPISLAZULI HILL#Catalyst のブックマークコメント

仕事でPerlができると喜んだのもつかの間,CPANとか自由にインストールできなさそう.かなり面倒.それでもCatalystでやりたいのでCatInABoxを試すことにする

環境

debian on coLinux

事前にsudo apt-get install perl5でperlをアップデート.そのままだとモジュールがかなり入ってない.UNIVERSALすらなかった…

ダウンロード&設置

下記からダウンロード

http://handelframework.com/downloads/CatInABox.tar.gz

Linux環境なのでextlib-win32と.batファイルを除いて設置.ユーザディレクトリにそのまま置いた

  • ~
    • bin
    • extlib

catalyst.pl実行

このあたりは普段どおり

% PERL5LIB=~/extlib bin/catalyst.pl MyApp

ひとまずアプリケーション作成成功

script/myapp_server.pl書き換え

毎度のごとくuse libの書き換え.

さくらインターネットでCatalystを動かす設定 - LAPISLAZULI HILL#Catalyst - Catalystグループ

構成さえあわせれば動くようにちょっとだけアレンジ

use lib "$FindBin::Bin/../../extlib", "$FindBin::Bin/../lib";

む.動かないmyapp_server.plのソースを見ると

BEGIN {
    $ENV{CATALYST_ENGINE} ||= 'HTTP';
    $ENV{CATALYST_SCRIPT_GEN} = 29;
    require Catalyst::Engine::HTTP;
}

とかなってる.BEGIN節のrequireをひとまずコメントアウトして実行.動いた

BEGIN {
    $ENV{CATALYST_ENGINE} ||= 'HTTP';
    $ENV{CATALYST_SCRIPT_GEN} = 29;
#    require Catalyst::Engine::HTTP;
}

問題があるかもしれないけど,ひとまずよしとする

このrequire行はhttp://dev.catalystframework.org/changeset/4748で追加されてる.うーん,なんで追加されたんだろ

トラックバック - http://catalyst.g.hatena.ne.jp/lapis25/20061121

2006-10-27

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

(追記)

さらに改良した方法をhttp://catalyst.g.hatena.ne.jp/lapis25/20061223/p1

http://catalyst.g.hatena.ne.jp/lapis25/20060902/p1のやり直しです

結局ドキュメントルートで動かすときには使えないんですが…

myAppはwww直下に作られていて

CPANでCatalystはインストール済みです

CPAN: http://d.hatena.ne.jp/lapis25/20060605/1149487765

script/myApp_cgi.plの書き換え

apacheの環境変数を書き換えようと思ったんですが,できなかったのでuse libにmoduleの検索パスを追加します./home/your/perl/libがCPANモジュールのインストール先です

【script/myApp_cgi.pl】

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

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

> perl myApp_cgi.pl

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

.htaccessの書き換え

http://example/memoでアクセスするように設定します

AddHandler cgi-script .pl

RewriteEngine On
RewriteRule ^memo/(.*)$ /myApp/script/myApp_cgi.pl/$1 [L]

http://example/memoにアクセスして動作いることを確認します

パーミッションの設定

wwwディレクトリの中に設置しているので,実行するscript(script/myApp_cgi.pl)とrootフォルダ以外のファイルのオーナ以外の権限を削りました.フォルダ700,ファイルなら600とかで.

前より少しはシンプルにできた気がします.apacheの環境変数さえ設定できたらごく普通の設定なんだけども.http://faq.sakura.ne.jp/にあったSetEnvIfでもうまくいかないし

LuisLuis2012/07/21 21:34That really captures the spirit of it. Thanks for psotnig.

exexqoawbsaexexqoawbsa2012/07/22 18:51zO7SeF <a href="http://jwylgqfwuqlm.com/">jwylgqfwuqlm</a>

rgintqetprgintqetp2012/07/23 08:376pdE8n , [url=http://hgpgalwxfxzc.com/]hgpgalwxfxzc[/url], [link=http://weuoautyjcnb.com/]weuoautyjcnb[/link], http://tlbructurbvi.com/

boanjjoumboanjjoum2012/07/24 12:42nsyvQ2 , [url=http://ubebvftzmbfs.com/]ubebvftzmbfs[/url], [link=http://zueulzhwavbt.com/]zueulzhwavbt[/link], http://xjrgfbupxcoe.com/

2006-09-02

[][]CatalystをレンタルサーバのCGIで動かすときの設定 CatalystをレンタルサーバのCGIで動かすときの設定 - LAPISLAZULI HILL#Catalyst を含むブックマーク はてなブックマーク - CatalystをレンタルサーバのCGIで動かすときの設定 - LAPISLAZULI HILL#Catalyst CatalystをレンタルサーバのCGIで動かすときの設定 - LAPISLAZULI HILL#Catalyst のブックマークコメント

http://catalyst.g.hatena.ne.jp/lapis25/20061223/p1に他の方法を

さくらインターネットスタンダードプランで設定してます.

結論を書くと

  • script/hoge_cgi.plを公開されているサーバに名前を変えてコピーする
  • use libを書き換える

の2点で動きました

作ったアプリケーションのディレクトリ,をここではhogeとします.その直下のscriptディレクトリにhoge_cgi.plを使うとCatalystをCGIとして動かします.現在Catalystの演習に使っている資料「まるごとPerl! Vol.1のつかってわかるCatlyst」には記述がありません.CGIのためのソースが載っているのでそれに従ってファイルを作ってもいいと思います

このファイルをWebとして公開されているフォルダにコピーします.このさい拡張子を.plから.cgiに変えておくと設定がいりません.私の使っているサーバでは.cgiがデフォルトで設定されているCGIの拡張子だからです.ついでに名前も変えました.パーミッションも変更します

> cp hoge/script/hoge_cgi.pl www/hoge.cgi
> cd www/
> chmod 705 hoge.cgi

さらにlibプラグマを書き換えました.hoge.cgiのlibプラグマ付近にはこのように書かれています

use FindBin;
use lib "$FindBin::Bin/../lib";
use hoge;

ここではFindBinモジュールを使ってlibプラグマを設定しています.FindBin::binで現在実行しているスクリプトのパスが検索できるのでこの記述だと/home/your-user/www/../libが設定されています.これを書き換えます

use lib qw( /home/your-usr/hoge/lib /home/your-user/perl/lib );

追加するのは,アプリケーションのlibディレクトリ(/home/your-user/hoge/lib)と,CPANモジュールをインストールしたディレクトリ(/home/your-user/perl/lib)です

これでひとまず動作しました..cgiが省略できるのでhogeでアクセスできます.ドメインがhttp://your-site/だとすると,http://your-site/hoge/で動作が確認できます.まだstaticファイルの設定ができていないので画像が表示されませんが動作は確認できました.Root.pmに追加したメソッドなども動いているのでひとまず問題はないと思います

もっとスマートな方法があるのかもしれませんがひとまずよしとします

参考:

http://q.hatena.ne.jp/1139320383

404 Not Found

まるごとPerl! Vol.1

まるごとPerl! Vol.1

EmmlyEmmly2011/08/02 19:05It's like you're on a misosin to save me time and money!

hdenbrhdenbr2011/08/02 21:12sTc05i <a href="http://diijiqtaviaz.com/">diijiqtaviaz</a>

keuspykeuspy2011/08/03 21:32BELZL7 , [url=http://szcytofzwske.com/]szcytofzwske[/url], [link=http://uqcpnzowprkh.com/]uqcpnzowprkh[/link], http://pdlicdtcexch.com/

hjjfqlxhjjfqlx2011/08/05 17:46fYOnPu <a href="http://oexcntdvzncj.com/">oexcntdvzncj</a>

jltsleljltslel2011/08/05 22:181G0M0t , [url=http://oewrtylgieiy.com/]oewrtylgieiy[/url], [link=http://qzdktowyjkmh.com/]qzdktowyjkmh[/link], http://vqyshlyutlau.com/

トラックバック - http://catalyst.g.hatena.ne.jp/lapis25/20060902