如何在nginx错误日志中获取perl脚本错误(Nginx with FCGIwrap)

时间:2012-03-30 10:33:29

标签: perl error-handling nginx fastcgi spawn-fcgi

我刚刚安装了fcgiwrap和spawn-fcgi,以便能够在nginx中使用perl脚本。我在我的网站配置中添加了类似的内容:

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)

我无法在nginx日志中找到perl错误。 " perl -c"在命令行上有帮助,如果有perl编译错误,但它不能帮助我解决运行时错误。

如何告诉perl或fcgiwrap在nginx错误日志或其他日志文件中保存错误?

2 个答案:

答案 0 :(得分:1)

有许多很好的工具可以捕获Perl Web应用程序的运行时错误并向您显示。可以通过各种方式在生产中禁用这些调试工具。它们基本上“评估”了大部分代码,允许它们处理大多数错误。一些例子:

答案 1 :(得分:0)

也许是因为你的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]#