Perl: Amon2 の導入

Amon 2とは Perl の WAF です。
Ruby でウェブサービス作るなら Rails とか使いますが、 Perl なら Amon 2 とか Mojolicious とかですね。

Amon2 のインストール

cpanm でインストールします。

cpanm Amon2

なんかきかれるので yes もっかい yes

ざーっとログが出て

./Build install  -- OK

ときたらインストール完了

 

Amon 2 Hello World

HelloAmon2 プロジェクトを作成します。

$ amon2-setup.pl HelloAmon2

HelloAmon2 プロジェクトが参照する依存関係を解決します。

$ cd HelloAmon2
$ cpanm --installdeps .

--installdeps は cpanfile というファイルに定義されている依存関係を解決してくれます。
新しく作成したプロジェクトディレクトリには cpanfile があるので、そのディレクトリの中で実行します。

アプリは perl script/アプリ名-server または plackup で起動します。

$ perl script/helloamon2-server 
Sample: http://127.0.0.1:5000/

ブラウザに http://localhost:5000 と入れると Hello, Amon2 world! と表示されます。

 

Carton を使って依存関係を解決する場合

$ carton install

これも cpanfile を参照して、自動で依存関係の解決をしてくれます。

carton で入れたコマンドはパスが通ってないので carton exec 経由で起動します。

$ carton exec -- plackup app.psgi &
[1] 30227
[vagrant@localhost HelloAmon2]$ HTTP::Server::PSGI: Accepting connections at http://0:5000/

ちなみにここではコマンドの最後に & をつけてバックグラウンドで起動しているので、

$ jobs

とやるとジョブ一覧表示され、[1] とかかれているジョブを指定して殺すには、

$ kill %1

で殺せます。

バックグラウンドじゃない場合は & をつけなくて OK です。

$ carton exec -- plackup app.psgi