私のDancerアプリは、他の環境(uWSGI + nginx、Starman + Apache、Dancer自身のdev-server)で自由に動作しながら、uWSGI(2.0.7)+ Apache(2.4.10)の組み合わせで失敗します。意味のある情報はログに記録されていません。これは/etc/uwsgi/apps-available
でuWsgiために利用可能なINIメイドなぜダンサーアプリがuWSGI + Apacheで失敗するのですか?
[uwsgi]
plugins = psgi
socket = 127.0.0.1:3033
uid = www
gid = www-data
chdir = /home/www/apps/tset/bin/
psgi = app.psgi
processes = 1
master = true
は、/etc/uwsgi/apps-enabled
にそれをリンクさ:だから私はこのようなtset.ini
を作成し、uwsgi.yml
に簡単なテストアプリケーションなどの
$ dancer -a tset
そして、コピーされたデフォルトproduction.yml
を作っbin/app.psgi
にbin/app.pl
をリンク。
再起動uwsgi
サービス。その後
mod-proxy-uwsgi
は私のバーチャルホストのconfに数行を追加しました:
ProxyPass /adm/y uwsgi://127.0.0.1:3033/
私はここにuWSGIModifier1 5
を設定する必要がありますが、考え出していなかったように感じるので、これは、最も脆弱なポイントですどこでどのように?
Apacheを再起動し、「内部サーバーエラー」が発生しました。 uwsgiログでは、私はちょうど参照してください:
Tue Jan 19 02:10:36 2016 - spawned uWSGI worker 1 (pid: 21712, cores: 1)
Tue Jan 19 02:10:56 2016 - -- unavailable modifier requested: 0 --
Tue Jan 19 02:24:44 2016 - -- unavailable modifier requested: 0 --
Tue Jan 19 02:27:14 2016 - -- unavailable modifier requested: 0 --
Tue Jan 19 02:27:17 2016 - -- unavailable modifier requested: 0 --
この "unavailable modifier requested"とは何ですか?何が間違っている、Apacheのerror.logには
のaccess.logに、何もエントリーされていないエントリですが、状況に過ぎない、他の情報500
このような挙動は、上記の手順と再現性があるので、私はあなたが把握願っていますこの組み合わせでは?
遅れて申し訳ありませんが:PSGIを使用して、ロードされます。これは良いヒントだったし、 '0:psgi'に移動した後、少し進歩しました。 uwsgiのログでは、 '--- perlアプリケーションを見つけることができません---'となり、別の面倒な行 '[pid:5757 | app:-1 | req:-1/1] 212.7.22.161(){66}が1511バイト] [Sat Jan 23 00:07:15 2016] GET/adm/z/=> 0ミリ秒で21バイトを生成しました(HTTP/1。1 500)2つのヘッダーが83バイト(コア0のスイッチ0) 'ここで私は、その共振は21バイトであり、「内部サーバーエラー」の長さは何かを見ています。 Apacheの下でPerlアプリケーションが見つからない理由は何ですか? –
www-data usesrに '@ INC'と同じものがないことがわかりました。そのため、Perlアプリが見つからないのです。 Apache2でもuwsgiが動いています。ありがとうございました! –