我使用ActivePerl 5.8.9在64位Windows Server 2008标准版上运行Apache 2.2。 我的错误日志填满了这些空白的错误消息:
[Wed Mar 31 14:08:31 2010] [error] [client 10.6.1.164]
[Wed Mar 31 14:10:32 2010] [error] [client 10.6.1.89]
[Wed Mar 31 14:13:20 2010] [error] [client 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;
奇怪的是,它看起来不像每次GET Perl脚本时都会插入这个错误消息。 什么可能导致此错误消息出现在Apache错误日志中?
在黑暗中拍摄,但默认情况下,Apache将任何写入stderr的内容redirect到error.log文件,所以如果您的脚本正在生成任何stderr输出(空格,换行符),则可能如此。