とある関係でPerlを覚える事に。
まずはお勉強がてら、Amon2となるフレームワークを
インストールしたいと思います。
前提条件
CentOS5.8
Amon2はcpanから簡単にインストールできるとの事なので
以下にて導入。
# curl -L http://cpanmin.us | perl - Task::Amon2 -nv
案外時間がかかりました。。私の環境だけでしょうか。。
ひとまずエラーとかも出ていないのでインストールは完了かな?と。
完了すると、amon2-setup.plのコマンドが使えるようになります。
こちらのコマンドはアプリの元、スケルトンが作成されるコマンドみたいです。
なので早速実行。
# amon2-setup.pl --flavor=Basic MyApp
はい、エラー。
Error while loading /var/www/MyApp/app.psgi: Can’t locate Module/Functions.pm in @INC (@INC contains: /var/www/MyApp/lib /var/www/MyApp/extlib/lib/perl5 /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /var/www/MyApp/lib/MyApp/Web/ViewFunctions.pm line 6.
ふむふむ。
/var/www/MyApp/lib/MyApp/Web/ViewFunctions.pmの6行目が怪しいとの事。
確認すると、
use Module::Functions;
となっており、モジュールが足りていないんだと判断。
以下にてモジュール導入。
# curl -L http://cpanmin.us | perl - Module::Functions -nv
再度スケルトン作成コマンド実行。
# amon2-setup.pl --flavor=Basic MyApp
おっ、今度はエラーなくうまく実行できました。
ファイル構造は以下になっております。
# tree MyApp/ MyApp/ |-- Build.PL |-- app.psgi |-- config | |-- deployment.pl | |-- development.pl | `-- test.pl |-- cpanfile |-- db | `-- development.db |-- lib | |-- MyApp | | |-- Web | | | |-- Dispatcher.pm | | | |-- View.pm | | | `-- ViewFunctions.pm | | `-- Web.pm | `-- MyApp.pm |-- sql | |-- mysql.sql | `-- sqlite.sql |-- static | |-- 404.html | |-- 500.html | |-- 502.html | |-- 503.html | |-- 504.html | |-- bootstrap | | |-- css | | | |-- bootstrap-responsive.css | | | |-- bootstrap-responsive.min.css | | | |-- bootstrap.css | | | `-- bootstrap.min.css | | |-- img | | | |-- glyphicons-halflings-white.png | | | `-- glyphicons-halflings.png | | `-- js | | |-- bootstrap.js | | `-- bootstrap.min.js | |-- css | | `-- main.css | |-- img | |-- js | | |-- es5-shim.min.js | | |-- jquery-1.10.0.min.js | | |-- main.js | | |-- micro-location.js | | |-- micro_dispatcher.js | | |-- micro_template.js | | |-- sprintf-0.7-beta1.js | | `-- strftime.js | `-- robots.txt |-- t | |-- 00_compile.t | |-- 01_root.t | |-- 02_mech.t | |-- 03_assets.t | |-- 06_jslint.t | `-- Util.pm |-- tmpl | |-- include | | |-- layout.tt | | `-- pager.tt | `-- index.tt `-- xt |-- 01_pod.t `-- 02_perlcritic.t 18 directories, 48 files
なんとなくわかりやすそうな?感じが見受けられます。
では早速起動して確認です。
# cd ./MyApp # plackup app.psgi HTTP::Server::PSGI: Accepting connections at http://0:5000/
ブラウザにてhttp://IPアドレス:5000/にアクセスし、
Hello, Amon2 world!と表示されれば成功です。
iptablesでポートを絞っている場合は、5000番ポートを解放して確認してくださいね。
まずは第一歩という事でこちらを参考にしてインストールを紹介しました。
では引き続きアプリ開発に関して順次紹介していきたいと思います。