Application PSGI avec Apache2 en utilisant Plack :: Handler :: Apache2 entraîne «non trouvé»

affiche première fois, long temps lurker ici.

Im utilise une application PSGI minuscule dans plackup, mais j’aime passer à Apache2 pour les sous-domaines. Je lance l’application avec ‘ plackup /home/ath88/work/kolle/script/dir.psgi -port 80 ‘. Il fonctionne parfaitement lors du plackup. L’application est assez simple et peut être trouvée à https://github.com/ath88/Kolletilmelding/blob/master/script/dir.psgi

Mais, je voudrais lancer Apache2 au lieu de faire un plackup pour des raisons évidentes. Pour cela, je veux utiliser Plack :: Handler :: Apache2. Mon VirtualHost se présente comme suit:

 ServerName aths.dk ServerAdmin [email protected]  SetHandler perl-script PerlResponseHandler Plack::Handler::Apache2 PerlSetVar psgi_app /home/ath88/work/kolle/script/dir.psgi   

Apache2 redémarre correctement. Mais quand je tente de visiter aths.dk, je reçois simplement un 404 introuvable. Le répertoire de l’application est correct, car il en résulte une erreur interne 500. En regardant dans le fichier apache2 / error.log, j’obtiens ceci: [non pertinent, voir modifier]

  [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 

Cela se produit chaque fois que je redémarre Apache2.

J’ai passé 4 heures à essayer de déboguer cela. Je suis totalement dérangé.

Edit: Désactive le SIGTERM d’arrêter Apache2 pour le redémarrer. Cela n’arrive pas quand je le lance. Que je suis bête.

Peut-être que votre configuration bénéficiera d’une configuration de proxy HTTP inverse.

Vous pouvez démarrer votre application Plack manuellement et la lier à 127.0.0.1:9001 au lieu de 127.0.0.1:80 , auquel cas vous avez besoin d’un utilisateur privilégié (port TCP inférieur à 1024).

Ensuite, une configuration de proxy HTTP inverse qui devrait fonctionner pourrait ressembler à celle-ci:

  ServerName aths.dk ServerAdmin [email protected] ErrorLog /var/log/apache2/aths.dk-error.log TransferLog /var/log/apache2/aths.dk.log DocumentRoot /var/www/aths.dk ProxyRequests Off  Order deny,allow Allow from all  ProxyPass / http://127.0.0.1:9001/ ProxyPassReverse / http://127.0.0.1:9001/