なんか、久々に Amon2::Lite
使ったので、おさらい。
「イントラで、コマンドラインを使えない人に対して、 bl2seq
サービスを提供する。」ってのを題材に、ざっと書く。
- port 5000 を使うので、そこを塞いでる人は開ける。
一応クリーン環境作成。
plenv
環境下。
$ export PERL5OPT= # 自己都合
$ plenv install 5.18.4
$ plenv shell 5.18.4
$ plenv install-cpanm
- 以下、環境によっては、
sudo
が必要
インストール
Plack
前から一発だったっけか?
$ cpanm Task::Plack
- 別環境の 5.22.0 では、 Corona が入らなかった。
Amon2
$ cpanm Amon2 Amon2::Lite
Amon2::Basic
とかでは carton
使うのがスタンダードっぽいけど、今回はいらない。
以上でインストール終了。
起動確認
ガワ作成
$ amon2-setup.pl --flavor=Lite Example
ガワの中身
$ cd Example
$ tree # 本物の tree コマンドじゃないよ。
/PATH/TO/Example/
+--.git/
(omitted)
+--.gitignore
+--app.psgi
+--Makefile.PL
+--t/
+--01_root.t
+--Util.pm
+--xt/
+--03_pod.t
起動
$ plackup -r
にアクセスして動いてるの確認1。
Kolon
の有効化と整理
Lite
では、テンプレートが Kolon
じゃない。
Kolon
を使うように、app.psgi
を編集。
app.psgi#1
use strict;
use warnings;
use Amon2::Lite;
sub load_config {
+{
'Text::Xslate' => +{
syntax => 'Kolon',
suffix => '.tx',
module => undef,
cache => 0,
},
}
}
get '/' => sub {
my $c = shift;
return $c->render('index.tx');
};
__PACKAGE__->to_app(handle_static => 1);
__DATA__
@@ index.tx
<!doctype html>
<html>
<body>
<header><h1>Example</h1></header>
This is a Example
<footer>Powered by <a href="http://amon.64p.org/">Amon2::Lite</a></footer>
</body>
</html>
- 元の app.psgi から今回使わない部分を、がっさり削除。
-
load_config
のデータベースの設定部分を削除して、Kolon
を指定するコードに差し替え。 - 拡張子を
.tx
にしたので、その他の.tt
を全て.tx
に変更 -
cache
は 0 にしとかないと、テンプレートを弄るときにキャッシュを読んでしまって混乱するので、 必ず 0 に2。- 運用では、 2 にするらしい。
差し替え後に、ブラウザをリロードして動いてるのを確認。
削ったコードは、必要になったら、復活させて行けばいい。