perl apache fastcgi plack psgi

perl - Plack:: App:: CGIBin vía Apache y mod_fastcgi-Script CGI no encontrado



psgi (1)

Supongo que debes cambiar

builder { mount "/plack" => $app; };

a

builder { mount "/" => $app; };

porque tu alias es eliminar / plack /

o simplemente cambia

# URL to be handled by FastCGI Alias /plack/ /tmp/placktest.fcgi/

a

# URL to be handled by FastCGI Alias /plack/ /tmp/placktest.fcgi/plack/

Después de todo, no parece ser una pregunta de Perl, sino una de administrador del sistema, sobre la configuración de Apache.

Estoy intentando que Plack::App::CGIBin funcione con Apache2 y FastCGI en FreeBSD 8.2. El objetivo final es poder utilizar esta configuración para servir a un montón de scripts CGI heredados a través de Plack, con el fin de aprovechar sus capacidades de middleware, pero no he podido hacer que funcione ni siquiera un simple ejemplo.

He seguido la documentación de CPAN sobre Plack::Handler::FCGI y Plack::App::CGIBin sí, pero no estoy seguro de si me falta algo o si hago algo mal que no está cubierto por esos documentos.

Esta es la configuración de Apache que agregué:

# Set up external server FastCgiExternalServer /tmp/placktest.fcgi -socket /tmp/fcgi.socket # URL to be handled by FastCGI Alias /plack/ /tmp/placktest.fcgi/

Comando para ejecutar el servidor externo:

plackup -s FCGI --listen /tmp/fcgi.socket /data/www/psgi/app.psgi

El servidor se inicia correctamente y devuelve lo siguiente:

FastCGI: manager (pid <pid>): initialized FastCGI: manager (pid <pid>): server (pid <pid>) started FastCGI: server (pid <pid>): initialized

Esta es app.psgi:

#!/usr/bin/env plackup -s FCGI use Plack::App::CGIBin; use Plack::Builder; my $app = Plack::App::CGIBin->new( root => ''/data/www/plack'', )->to_app; builder { mount "/plack" => $app; };

Luego tengo una secuencia de comandos CGI simple en /data/www/plack/test.cgi (este archivo se ejecuta bien bajo CGI.pm).

Lo que esperaría es que una solicitud a http://<domain>/plack/test.cgi/ (incluida la barra diagonal) devuelva el script de prueba, pero siempre obtengo el siguiente error 404 en el registro de errores de Apache, que creo que regresa del servidor FastCGI:

FastCGI: server "/tmp/placktest.fcgi" stderr: <IP address/date>; "GET /plack/test.cgi HTTP/1.1" 404 9 "-" <User agent string>;

Tengo FastCGI trabajando por sí solo, usando mod_fastcgi y un sencillo script de ejemplo en un directorio con SetHandler fastcgi-script aplicado, así que al menos eso funcionó :-).

¿Alguien ha hecho que Plack::App::CGIBin funcione en un escenario similar? ¡Agradecería mucho cualquier idea!

Gracias