Mojolicious::Plugin::Web::Auth(twitter)がStarmanやStartletで動かない?
Twitter認証画面で許可を押して、コールバックURLのhttp://atndfc.dokechin.com/auth/twitter/callbackにリダイレクトされたあとに 以下のエラーとなってしまった。
Can't call method "session" on an undefined value at /home/tatsumi/perl5/perlbrew/perls/perl-5.16.1/lib/site_perl/5.16.1/Mojolicious/Plugin/Web/Auth/OAuth.pm line 50.
Mojolicious::Plugin::Web::Auth::OAuth.pm 50行目はこんな感じとなっている。 $cが未定義の値とはいったいどういうことなんだろう。
session => sub{$c->session(@_) },
ローカル環境では動くのですが・・・ 何が悪いのか今のところ、全く見当がつかない。 何か見落としているはずなんだろうけど。
結局本番機でも、morboやサーバ指定なしのplackupなら動いた
本番機で以下のようにして、WEBアプリを起動したら、しっかりと動いた。
morbo -l http://*:8006 script/hoge
また、開発機で認証用のサンプルMojoliciousLiteアプリを以下のようにして動かしても 動いた。
plackup myapp.pl
本番機は、こんな感じでrunスクリプトを書いて、動かしている。
#!/bin/sh exec /home/tatsumi/perl5/perlbrew/perls/perl-5.16.1/bin/start_server --port=8006 --interval=10 -- /home/tatsumi/perl5/perlbrew/perls/perl-5.16.1/bin/plackup -s Starman -MFindBin -a /home/tatsumi/atndfc/atndfc.psgi ``````
本番機でも以下のようにしたらエラーにならなかった。
/home/tatsumi/perl5/perlbrew/perls/perl-5.16.1/bin/plackup /home/tatsumi/atndfc/atndfc.psgi
本番機で、サーバをStarmanにしたらエラーになった。
/home/tatsumi/perl5/perlbrew/perls/perl-5.16.1/bin/plackup -s Starman /home/tatsumi/atndfc/atndfc.psgi
本番機で、サーバをStarletにしてもエラーになった。
/home/tatsumi/perl5/perlbrew/perls/perl-5.16.1/bin/plackup -s Starlet /home/tatsumi/atndfc/atndfc.psgi
結局、Mojolicious::Plugin::Web::Auth+StarmanまたはStartletの組み合わせで動かす方法がわからなかった。
とりあえず、サーバ指定なしで、plackupだけで動かすようにしました。どなたかやり方がわかる人教えてほしいです。
★追記 後日の状況