题
我尝试在服务器上执行一个简单的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";
不隶属于 StackOverflow