我刚刚安装了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错误日志或其他日志文件中保存错误?
答案 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]#