Mojoliciousアプリを本番環境で運用するとき、最初にすること。
@dokechin ATNDフルカレンダーでTwitter認証したら502が出ました。そこでスタックトーレスが表示されたのですが、もしかしてプロダクションモードではなく開発モードで起動していたりしませんか。失敗とは別にそこが気になりました
— (*>ヮ<)っ ~$ いちごたけさんた (@ichigotake) July 24, 2013
ATNDフルカレンダーはMojoliciousを使っていて、その中のrunスクリプトが以下のようでした。 plackupで起動しているから、productionモードかと思いきや。 templatesディレクトリ配下にexception.development.html.epをおいたら、適用できたのでdevelopmentモードで起動されていた。
/home/tatsumi/perl5/perlbrew/perls/perl-5.16.1/bin/plackup --port=8006 /home/tatsumi/atndfc/atndfc.psgi
でもって、下記のようにproductionモードにしてあげたら画面も変わった。
export MOJO_MODE=production /home/tatsumi/perl5/perlbrew/perls/perl-5.16.1/bin/plackup --port=8006 /home/tatsumi/atndfc/atndfc.psgi
スタックトレース丸見えは、Configプラグインで設定しているTwitterキーなどが表示されちゃうので、避けたいところ。productionモードならば安心です。
また、productionモードのエラー画面はexception.html.epでカスタマイズする。exception.production.html.epでやろうと悪戦苦闘してしまったww