【发布时间】:2010-09-14 15:22:56
【问题描述】:
我尝试在我的服务器上执行一个简单的 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所有,属于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 脚本相同 - 它是指另一个目录吗?
【问题讨论】:
-
IIRC,你需要在 headers 之前发送 "HTTP/1.1 200 OK\n" ,不是吗?
-
我在我的另一台服务器上尝试了同样的脚本,它运行良好。我不是 perl 专家,但我认为没有它也可以,因为它可以在服务器上运行?
-
这里调试这个问题时有一系列非常好的事情可以尝试:perlmonks.org/?node_id=262011
-
@Piskvor - 不。服务器会处理这个问题。
标签: perl cgi server-error