2012-08-31 65 views
0

我想一些日志与Perl代码添加到我的CGI脚本这样的文件:无法写入与Apache CGI脚本

open(LOG, ">/path/to/my.log") or die; 
print LOG "Some content...\n"; 
close(LOG); 

但是,日志不会被写入我的日志文件,而脚本仍正确处理请求。

我对Apache,CGI和Perl不是很熟悉,所以大师们请大发雷霆。

回答

0

的问题已经得到解决:改变我的Perl脚本只重启动Apache后生效。不知道为什么它的行为,因为我认为Perl是一种解释的语言,它可以在飞行中修改...

2

这可能是一个权限问题。脚本的跑步者(可能是用户:apache,httpdnobody)没有权限写入文件。但是,可以肯定的是,您需要检查$!包含的内容。当脚本运行时,请尝试检查Apache的ErrorLog文件。

我会重写你的代码:

use CGI::Carp qw(croak); 

open my $log, '>', '/path/to/my.log' or croak "Error opening file: $!"; 
print $log "Some content...\n"; 
close $log; 
+0

你的代码看起来不错,但它不工作...而且我找不到从'error_log'中取出任何有用的信息。我怀疑打开文件失败了,但是在哪里以及如何检查'$!'的内容? –