Как получить ошибки сценария perl в журнале ошибок nginx (Nginx с FCGIwrap) - PullRequest
7 голосов
/ 30 марта 2012

Я только что установил fcgiwrap и spawn-fcgi, чтобы иметь возможность использовать сценарии perl в nginx.Я добавил что-то подобное в конфигурацию моего сайта:

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

Это работает, но браузер показывает следующее сообщение, если в коде perl есть ошибка:

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

И я не могунайти ошибки perl в логах nginx.«perl -c» в командной строке помогает, если есть ошибки компиляции perl, но не помогает мне решать ошибки времени выполнения.

Как мне указать perl или fcgiwrap сохранять ошибки в журнале ошибок nginx или каком-либо другом журналефайл

Ответы [ 2 ]

1 голос
/ 08 августа 2012

Существует множество полезных инструментов, позволяющих фиксировать ошибки времени выполнения веб-приложений Perl и показывать их вам. Эти средства отладки могут быть отключены в производстве различными способами. Они в основном "оценивают" основную часть кода, что позволяет им обрабатывать большинство ошибок. Некоторые примеры:

0 голосов
/ 29 сентября 2017

Возможно, это потому, что у вашего nginx нет прав доступа к файлу "CGI.pm".

Посмотрите это:

[root@mars 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.

[root@mars 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
[root@mars www]#
...