2

我正在尝试将请求中的 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;
4

1 回答 1

5

apache用户没有对该文件的写入权限。

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

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

open my $flh, '+>>', "$file" or die "Cannot open file '$file': $!"; 
于 2013-09-25T13:29:44.730 回答