【问题标题】:Unable to write file with Apache CGI scripts无法使用 Apache CGI 脚本写入文件
【发布时间】:2012-08-26 00:30:03
【问题描述】:

我想用 Perl 代码向我的 CGI 脚本添加一些日志,如下所示:

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

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

我对 Apache、CGI 和 Perl 不是很熟悉,所以请高手们指点一下。

【问题讨论】:

    标签: perl apache cgi cgi-bin


    【解决方案1】:

    这可能是权限问题。脚本的运行者(可能是用户: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;
    

    【讨论】:

    • 你的代码看起来不错,但它也不起作用......我无法从error_log 找到任何有用的信息。我怀疑打开文件失败,但是在哪里以及如何检查$!的内容?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 2016-01-28
      • 2020-10-09
      • 2019-03-22
      • 2019-05-14
      • 2023-04-04
      • 1970-01-01
      • 2012-11-12
      相关资源
      最近更新 更多