无法将http请求标头写入perl中的文件

时间:2013-09-25 13:23:42

标签: perl http apache2 cgi

我正在尝试将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;

1 个答案:

答案 0 :(得分:5)

apache用户无权写入文件。

要获得更好的错误消息,请更改此行:

open my $flh, '+>>', "$file" or die "Cannot open file"; 

open my $flh, '+>>', "$file" or die "Cannot open file '$file': $!";