无法使用Apache CGI脚本编写文件

时间:2012-08-31 07:54:55

标签: perl apache cgi cgi-bin

我想使用Perl代码将一些日志添加到我的CGI脚本中:

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

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

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

2 个答案:

答案 0 :(得分:2)

这可能是一个许可问题。脚本的运行者(可能是用户:apachehttpdnobody)无权写入该文件。但是,您必须检查$!包含的内容。还要在脚本运行时尝试检查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;

答案 1 :(得分:0)

问题已解决:只有重启Apache后,对Perl脚本的更改才会生效。不知道为什么它的行为是这样的,因为我认为Perl是一种解释型语言,可以动态修改......