我在带有 ActivePerl 5.8.9 的 64 位 Windows Server 2008 标准版上运行 Apache 2.2。我的错误日志充满了空白错误消息,如下所示:
[2010 年 3 月 31 日星期三 14:08:31] [错误] [客户端 10.6.1.164]
[2010 年 3 月 31 日星期三 14:10:32] [错误] [客户端 10.6.1.89]
[2010 年 3 月 31 日星期三 14:13:20] [错误] [客户端 10.6.1.131]
通过查看访问日志,我可以看出它发生在我们的客户端机器向一个非常简单的 Perl 脚本发出 GET 时。
#!perl.exe
use strict;
no warnings;
$|=1;
use CGI::Carp('fatalsToBrowser');
use CGI qw(:standard);
print header;
my $CRLF = "\r\n<br>";
my $Port = '10116';
print "Success!${CRLF}PollInterval=5${CRLF}LMProMode${CRLF}Version=7${CRLF}ConnectionPort=$Port";
exit;
奇怪的是,每次发生对该 Perl 脚本的 GET 时,似乎都不会插入此错误消息。什么可能导致此错误消息出现在 Apache 错误日志中?
在黑暗中拍摄,但默认情况下,apache 会将写入 stderr 的任何内容重定向到 error.log 文件,因此,如果您的脚本完全生成任何 stderr 输出(空格、换行符),这可能会体现出来。