何年、いや10年ぶりくらいにperlの世界へ訪れることになりました。
シンタクス等も大幅に変更が見られ、何から手を付けていこうかと考えては見ましたが、同時にワクワクが止まりません。
CGIを利用したWEBサービスという意味では今も昔も変わらないと思うので、代表的なWEBフレームワークの中から
Mojoliciouを選択(発音は、モジョリシャスが有力。)
これは、開発用に、Nodeに似たイベント駆動型のビルトインWEBサーバを内包しているようで、
ホットデプロイ(インタプリタではあるが、プリコンパイルされたコードがオンメモリされるためか?)等に対応しているらしい。
なるほど。
なんにせよまずは、環境のインストールを行います。
以下のサイトを参考にさせていただきました。
https://github.com/yuki-kimoto/mojolicious-guides-japanese/wiki/Mojolicious%3A%3AGuides%3A%3ACookbook
Mojoliciousを始めるにあたって公式の次に読むべきサイトとして最適と思います。有用な情報を発信してくださっている偉大な先人の方々に感謝です。
自前の開発サーバがCentOS7(64bit)なので、yumによる作業が続くことになるでしょう。
私の持論として、
「どのような開発環境もまずは公式を見て。環境の条件が合う限り、公式に沿ってインストールする。」
というものが(おぼろげながら)あります。
最近はこちらのQiitaさんや海外でいえばStackoverflow等、大量のアウトプットがなされていますが、
同時にOSを始めとしたサーバ環境も多種多様で、さらにはバージョンの差異も絡んできます。
適当にシングルワードで検索し、「入門」や「インストール」などの記事をなぞって実行しても
まずうまくいきません。
私の場合、常識かもしれませんが、意外と利用されていないTIPSとして、目的のキーワードを用いて、Google検索の結果を得た後に、上部メニューの「ツール」から「期間指定なし」のプルダウンで期間を選択すると
指定した期間で更新順のソートがなされるので、変化の激しい情報をお探しの方はこれを利用することで、
かなり早く、少しでも正確な目的の情報を取得しやすいのではないかと思います。
話を戻してインストールの準備ですが、Mojolicious以前に、Perlには、「perlbrew」や「cpanm」と呼ばれる、便利なパッケージマネージャがあり、perl自身のアップグレード等も楽に行えるようです。かつ、スコープをローカルにとれるため、NodeJSのようにディレクトリ完結ですっきり開発できるのは嬉しいところです。
まずはお約束
$ yum update
$ yum install perl perl-devel
「perlbrew」は、公式(https://perlbrew.pl/)
を参考に該当するOS用のインストール方法からさくっとインストールしてください。
その後、実行ディレクトリに「perl5」ディレクトリが作成され、基本的にはそこに、perlbrewの実行ファイルや、インストールしたモジュールがおかれるようです。
インストール後のログにもありますが、~/perl5/perlbrew/etc/bashrcへのパスの追加をお忘れなく。
echo "source ~/perl5/perlbrew/etc/bashrc" >> $HOME/.bash_profile
プロファイルを再読込するとperlbrewコマンドが利用可能になりますので、
perlのバージョンもここでアップデートしておきました。
$ perlbrew install perl-5.20.2
こちらは非常に時間がかかります、動いているか不安になるほどです。
しかし、ログの最後に別端末からインストールプロセスをtailで参照しろとありますので、下記コマンドで詳細を確認できます。
(以下コマンドは別端末で実行します)
$ tail -f ./perl5/perlbrew/build.perl-5.20.2.log
「cpanm」もperlbrewでインストール。
$ perlbrew install-cpanm
そして本題のMojolicious、まずは公式サイトに行ってみます。
http://mojolicious.org/
Instllationの部分には早くも、他サイトでご紹介いただいている内容とは違う、ワンライナーが見て取れます。(それらが間違っているとは限りませんので初心者の方はご注意を)
$ curl -L https://cpanmin.us | perl - -M https://cpan.metacpan.org -n Mojolicious
繰り返しになりますが、公式サイトが上記と違う場合はすでにこの記事は古いので、これ以降は読まない方が無難です。
cpanmによるインストールは
$ cpanm Mojolicious
でした。
それでは早速実行テストを。
公式のサンプルプロジェクトとして表記されているヘロワの実行ですが、
適当なプロジェクト用ディレクトリを作成し、その中にapp.plとして書きました。
use Mojolicious::Lite;
get "/" => {text => "HelloWorld!"};
app-start;
そして、Mojoliciousのビルトインサーバで確認するため、サーバの実行です。
$ morbo ~/helloworld/app.pl
起動に成功すればURLが表示されます。デフォルトではhttp://127.0.0.1:3000ですのでブラウでで確認し、
「HelloWorld!」の文字列が確認できれば成功です。
次回はリバースプロキシにnginxを用いたSSLへの対応です。