私のDancerアプリは、uWSGI (2.0.7) + Apache (2.4.10) の組み合わせで失敗しますが、他の環境 (uWSGI + nginx、Starman + Apache、Dancer 独自の開発サーバー) では自由に実行されます。ログに意味のある情報が見つかりません。だから私は簡単なテストアプリを作りました
$ dancer -a tset
production.yml
次に、 defaultをにコピーし、次のように作成されたものuwsgi.yml
にリンクbin/app.pl
します。bin/app.psgi
tset.ini
[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
この ini を で uWsgi で使用できるようにし/etc/uwsgi/apps-available
、 にリンクしました/etc/uwsgi/apps-enabled
。
サービスを再開uwsgi
しました。
次に、Apache (2.4.10) モジュールの場合mod-proxy-uwsgi
、virtualhost 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 --
この「使用できない修飾子が要求されました」とは何ですか?
apache error.log にはエントリがなく、access.log にはエントリがありますが、ステータス 500 以外の情報はありません。
このような動作は上記の手順で再現できるので、この組み合わせの何が問題なのかを理解していただければ幸いです。