2012-03-30 14 views
7

Acabo de instalar fcgiwrap y spawn-fcgi para poder usar scripts de Perl en nginx. He añadido algo como esto en mi sitio config:Cómo obtener errores de script de Perl en el registro de errores de nginx (Nginx con FCGIwrap)

location ~ \.pl$ { 
    gzip off; 
    fastcgi_pass unix:/var/run/fcgiwrap.socket; 
    include fastcgi_params; 
    fastcgi_index index.pl; 
} 

Funciona, pero el navegador muestra el siguiente mensaje si hay un error en el código Perl:

An error occurred while reading CGI reply (no response received) 

y no soy capaz de encontrar errores en Perl en los registros nginx. "perl -c" en la línea de comandos ayuda si hay errores de compilación perl pero no me ayuda a resolver los errores de tiempo de ejecución.

¿Cómo puedo decirle a perl o fcgiwrap que guarde los errores en el registro de errores de nginx o en algún otro archivo de registro?

Respuesta

1

Hay una serie de buenas herramientas para capturar errores de tiempo de ejecución de las aplicaciones web de Perl y mostrarlas a usted. Estas herramientas de depuración se pueden desactivar en producción a través de diversos medios. Básicamente, "evalúan" la mayor parte del código, les permiten manejar la mayoría de los errores. Algunos ejemplos:

0

Quizás es de suponer que su nginx no tiene permiso para acceder al archivo "CGI.pm".

mirar esto:

[[email protected] www]# sudo -u nginx ./foo.cgi 
Can't locate CGI.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./foo.cgi line 2. 
BEGIN failed--compilation aborted at ./foo.cgi line 2. 

[[email protected] www]# ./foo.cgi 
Status: -charset 
Set-Cookie: utf-8 
Date: Fri, 29 Sep 2017 02:49:38 GMT 
Content-Type: text/html; charset=ISO-8859-1 

本文最后更新时间:20170929 10:35:29 
[[email protected] www]# 
Cuestiones relacionadas