我尝试在服务器上执行一个简单的perl脚本,并获得内部500服务器,当我检查错误日志时,它显示了:

Premature end of script headers: test.pl

这是perl脚本:

#!/usr/bin/perl -w
print "Content-type: text/plain\n\n";
print "testing...\n";

我的 cgi-bin 文件夹的权限为0755。脚本本身也是0755。脚本由Apache及其在Group Apache中所有。该脚本通过命令行工作正常。

有什么问题,我该如何解决?

感谢所有的帮助!

更新

在Suexec中有趣的发现:

2010-09-14 17:38:28]: uid: (10001/som) gid: (2522/2522) cmd: test.pl
[2010-09-14 17:38:28]: target uid/gid (10001/2522 or 2521) mismatch with directory (48/0) or program (48/0)

但是我的CGI折叠器与test.pl脚本相同 - 它是指另一个目录吗?

有帮助吗?

解决方案

Perl脚本有很多很好的故障排除建议,向Perlmonks提供了错误消息: 从这里开始. 。我在脚本中没有看到任何特定的错误,看起来您已经介绍了文件权限,因此我将从Apache配置建议开始。

其他提示

很多好的建议: 我如何对我的perl CGI脚本进行故障排除.

更新看到您的SUEXEC错误消息:看起来您的服务器需要与目录同一用户拥有的CGI程序。尝试更改文件的所有权。

使用CGI模块

use CGI qw/:standard/;
$q = CGI->new;
print $q->header('text/html');
print "testing...\n";     
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top