初めてのポスター、長い間ここに潜んでいます。
plackup で小さな PSGI アプリケーションを使用していますが、サブドメイン用に Apache2 に切り替えたいと考えています。「 plackup /home/ath88/work/kolle/script/dir.psgi -port 80 」でアプリケーションを実行します。それはplackupで完全に動作します。アプリケーションは非常にシンプルで、https://github.com/ath88/Kolletilmelding/blob/master/script/dir.psgiにあります。
しかし、明らかな理由から、plackup の代わりに Apache2 を実行したいと考えています。このために、Plack::Handler::Apache2 を使用したいと考えています。私の VirtualHost は次のようになります。
<VirtualHost *:80>
ServerName aths.dk
ServerAdmin asbjoern@gmail.com
<Location />
SetHandler perl-script
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app /home/ath88/work/kolle/script/dir.psgi
</Location>
</VirtualHost>
Apache2 は正常に再起動します。しかし、aths.dk にアクセスしようとすると、単に 404 が見つかりません。500 内部エラーが発生するため、アプリケーションのディレクトリは正しいです。apache2/error.log を見ると、次のようになります: [無関係、編集を参照]
[Wed Oct 05 21:32:16 2011] [notice] caught SIGTERM, shutting down
[Wed Oct 05 21:32:17 2011] [notice] Apache/2.2.12 (Ubuntu) mod_perl/2.0.4 Perl/v5.10.0 configured -- resuming normal operations
これは、Apache2 を再起動するたびに発生します。
これをデバッグするのに4時間費やしました。私は完全に頭がおかしいです。
編集: SIGTERM は、再起動のために Apache2 を停止することによるものであることが判明しました。起動すると発生しません。愚かな私。