Mojolicious::Liteをレンタルサーバで動かす その2(環境に合わせて書き換える)

Mojolicious::Liteをレンタルサーバで動かす その1 - LAPISLAZULI HILL#HatenaでMojolicious::Liteがさくらインターネットレンタルサーバに入ったので,実際に動くようにしてみる.わふー><


まずはアプリのひな形を作る.Mojoはgeneratorがあるので簡単にアプリが作れる.とりあえずrootにmy.cgiとして作る.作られるファイルはたったの1つ.パーミッションも設定してくれる

% cd ~/www
% mojolicious generate lite_app my.cgi

genarateされたコードはこんな感じ

#!/usr/bin/env perl

use Mojolicious::Lite;

get '/' => 'index';

get '/:groovy' => sub {
    my $self = shift;
    $self->render(text => $self->param('groovy'), layout => 'funky');
};

app->start;
__DATA__

@@ index.html.ep
% layout 'funky';
Yea baby!

@@ layouts/funky.html.ep
<!doctype html><html>
    <head><title>Funky!</title></head>
    <body><%== content %></body>
</html>

このままだと動かないので

  • うごかすperlを指定する
    • 上のコードの1行目shebang行.perlbrew使ってないときはそのままでもokかも
    • perlbrewで入れた特定のバージョンで動かしたいときは,home/[ユーザ名]/perl5/perlbrew/perls/perl-5.8.9/bin/perlなどとする.perl-5.8.9をinstallに指定した名前に
  • 自分で入れたcpanモジュールは動かないので,パスをperlに通す
    • shebang行の次に追加.自分で入れたperlのlibディレクトリを指定
    • perlbrewで入れた特定のバージョンで動かしたいときは,currentをinstallで指定した名前に変える
  • cgiで動くようにMojoに指示する
    • __DATA__の前行

ちなみにいまはいっているperlbrewのperlを調べるにはperlbrew installedとする

#!/home/[ユーザ名]/perl5/perlbrew/bin/perl

use lib '/home/[ユーザ名]/perl5/perlbrew/perls/current/lib';
use Mojolicious::Lite;

get '/' => 'index';

get '/:groovy' => sub {
    my $self = shift;
    $self->render(text => $self->param('groovy'), layout => 'funky');
};

app->start('cgi');
__DATA__

@@ index.html.ep
% layout 'funky';
Yea baby!

@@ layouts/funky.html.ep
<!doctype html><html>
    <head><title>Funky!</title></head>
    <body><%== content %></body>
</html>

これで http://ユーザ名.sakura.ne.jp/my あるいは my.cgiにアクセスすれば動いていることが確認できる.このまま置いておくにはまずのでとりあえず消しておいた方がいいかもしれない

あと1回デブロイについて書くかもしれない