2012-03-30 8 views
7

Ho appena installato fcgiwrap e spawn-fcgi per poter usare gli script perl in nginx. Ho aggiunto qualcosa di simile nel mio sito config:Come ottenere errori di script perl nel registro degli errori di nginx (Nginx con FCGIwrap)

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

Funziona ma il browser mostra il seguente messaggio se si verifica un errore nel codice Perl:

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

e io non sono in grado di trovare gli errori perl nei log di nginx. "perl -c" sulla riga di comando aiuta se ci sono errori di compilazione perl ma non mi aiuta a risolvere gli errori di runtime.

Come posso dire a perl o fcgiwrap di salvare gli errori nel registro degli errori di nginx o qualche altro file di registro?

risposta

1

Esistono numerosi strumenti utili per acquisire gli errori di runtime delle app web Perl e mostrarli all'utente. Questi strumenti di debug possono essere disabilitati nella produzione attraverso vari mezzi. Fondamentalmente "valutano" la maggior parte del codice, consentono loro di gestire la maggior parte degli errori. Alcuni esempi:

0

Forse è perché il tuo nginx non ha il permesso di accedere al file "CGI.pm".

Guardate questo:

[[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]# 
Problemi correlati