Mojolicious::Liteな perl CGI をレンサバにアップロードするだけで動かす。

Mojolicious::Liteな perl CGI をレンサバにアップロードするだけで動かす。

perlのWAF(ウェブアプリケーションフレームワーク)である Mojolicious(Mojolicious::Lite)をアップロードだけで使えるのか試してみる。

簡単に使えるフレームワークとして、とりあえず Linux+Apacheで動けばおkという前提で。

なにせフレームワーク初心者の戯事なのでそのあたりは察してください。

準備

httpでアクセス可能な場所にappというディレクトリを作成。
その中にapp.cgiファイルを作る。
ソース的にはこんな感じ。

#!/usr/bin/perl
##  又は、#!/usr/bin/env perl

use lib './lib';
use Mojolicious::Lite;

#use strict;         # use Mojolicious::Lite;の時点で
#use warnings;   # 両方共適用される
use utf8;

my $contents = {};

# Hello World!!
get '/' => sub {
    my $self = shift;

    $contents ->{messe} = "Hello World!!";
    $self->stash(contents=>$contents);

}=>'index';

app->start('cgi');

__DATA__

@@ index.html.ep
<html>
  <body>
    <h1>index page</h1>
    <%= $contents->{messe} %>
  </body>
</html>

構成

app(ディレクトリ)
  |- app.cgi(perl cgi)

lib以下にmojo関連のモジュールを置く

ダウンロード先もリンクに掲載されています。

  • Mojoliciousマニュアル - サンプルコードによるPerl入門
  • 解凍したmojoディレクトリの中にlibというディレクトリがあるのでまるっとアップロードする(1.2MB程ある)

    app(ディレクトリ)
      |- app.cgi(perl cgi)
      |- lib
          |- mojo
          |-  .... 他たくさん

    動作確認

    app.cgi に実行権限を与える(700や705など)

    http://hoge.com/app/app.cgi
    にアクセスして無事indexページが表示されれば成功。

    以下に全てのファイルが入ったzipがダウンロードできます。
    appのサンプル

    これでよいのか?

    このような使い方は邪道なのかもしれないけど、手軽に簡単にフレームワークを使ったPerlスクリプトを書きたいとか、設置したいとかの要望はあると思うのですよ。

    ただし、すべての機能が使えるかどうかは試していないのであしからず。