我正在尝试将HTTP标头从请求写入文件。 单独执行的perl脚本运行正常并写入文件。但是,当我从http请求调用脚本时,我收到http 500错误,错误日志说..'无法打开文件' 我在脚本中评论了“打开文件”行,当从浏览器调用时它可以正常工作。请告诉我我在这里做错了什么? 以下是代码:
#!/usr/bin/perl
use CGI qw(:standard);
use strict;
use warnings;
use Carp;
use LWP::Simple;
my $query = CGI->new;
my $file = '/home/suresh/clientrequest.txt';
chmod 644, $file;
sleep(1);
open my $flh, '+>>', "$file" or die "Cannot open file";
$flh->autoflush();
# Read the data here
print $flh my @keywords = $query->keywords;
print $flh $query->header(-domain=>'testdomain');
print $flh my @names= $query->param;
close $flh;
print header;
print start_html("Welcome");
print $ENV{QUERY_STRING};
print end_html;
答案 0 :(得分:5)
apache
用户无权写入文件。
要获得更好的错误消息,请更改此行:
open my $flh, '+>>', "$file" or die "Cannot open file";
到
open my $flh, '+>>', "$file" or die "Cannot open file '$file': $!";