7

我刚刚安装了 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 编译错误,命令行上的“perl -c”会有所帮助,但它不能帮助我解决运行时错误。

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

4

2 回答 2

1

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

于 2012-08-08T12:49:27.087 回答
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]#
于 2017-09-29T02:50:56.307 回答