あたらしものずきっ!

試してみたものとか、遊んでみたものを色々記してみます。

Amon2をさくらスタンダードプラン上に設置する

ちょろちょろと作業しつつ、なかなか動かないので面倒で放置してたけど、気合いれて動かしてみた。予めローカルで作成しておき、ひと通りできたところで転送という形。

ローカル編

cpanm --mirror http://orepan.64p.org/ Amon2

amon2-setup.pl Hello

さくらスタンダードプラン故の宿命で、とりあえずextlibを掘って、そこに依存モジュール突っ込む。installdeps使ってみたけど、うまく入らなかったので只管errorlogとにらめっこ。

plackup -r app.psgi

mkdir extlib
cpanm --force -l ./extlib/ Foo::Bar

ひと通りファイルが入ったところで、app.cgi作成。もちろんこれも一筋縄ではうごかないので、とりあえず動くまで入れる。

#!/usr/bin/perl
use lib qw(./extlib/lib/perl5);
use strict;
use warnings;
use utf8;
use Plack::Loader;

use Plack::Util;
 
use Path::Class qw(dir);

my $psgi_path = dir("home", "bar");
my $app = Plack::Util::load_psgi('/'.$psgi_path.'/app.psgi');
Plack::Loader->load('CGI',  port => 5000 )->run($app);

URLにこだわりたかったので、htaccessも追加。

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/app.cgi
RewriteRule ^app.cgi - [L]
RewriteRule ^(.*)$ app.cgi/$1 [QSA]

そしてHelloディレクトリ丸ごとさくらにあげる。

さくら編

とりあえず、ローカルでやったように、動くまで確認する。

cd ~/www/Hello/
cpanm --force -l ./extlib/ Foo::Bar

さくらスタンダードプランは、当日のエラーログをみるためには管理画面へアクセスしなければならないという面倒仕様なので、ブラウザとにらめっこしながらコンソール叩く。