复杂的 cgi 脚本可以工作,但 test.cgi 不能
Posted
技术标签:
【中文标题】复杂的 cgi 脚本可以工作,但 test.cgi 不能【英文标题】:Complex cgi script works, but test.cgi doesn't 【发布时间】:2011-02-17 21:03:48 【问题描述】:我在同一个 cgi-bin 文件夹中有两个 cgi 文件。一个复杂的 300000 行脚本可以正常工作,但是当涉及到这个简单的 cgi 脚本时:
#!/usr/bin/perl -w
print "Content-type: text/html\n\n";
print "<html><head>";
print "<title>CGI Test</title>";
print "</head>";
print "<body><h1>I just wrote a web page using Perl!</h1>";
print "</body></html>";
网页将返回 500 Internal Server Error...
为什么?:(
编辑: 好的,问题在一台服务器上解决了,cgi 工作正常。但是... 现在我正试图让 cgi 脚本在另一台服务器上工作,似乎无论我做什么,我都会不断收到“内部服务器错误”消息,并且错误日志中没有任何内容。 有什么建议吗?
【问题讨论】:
【参考方案1】:想到两种可能性:
您的简单脚本没有执行权限集test.cgi
是一个特殊名称,由服务器配置重定向到别处
你能从命令行运行test.cgi
吗?
【讨论】:
【参考方案2】:查看网络服务器日志了解详情。
在大多数情况下,这是一个权限问题,不仅是执行此脚本的权限,而且例如某些网络服务器出于安全原因默认拒绝执行具有 777 或任何其他可写权限的脚本。
尝试为该文件设置 644 权限。
【讨论】:
已将权限设置为 0644,看来要工作需要“0755”。 :d【参考方案3】:关于您的后续问题:另一台服务器是什么类型的服务器?另外,问题是特定脚本还是所有脚本?你可以在你的 cgi-bin 中使用任何脚本吗?如果没有,可能是您的虚拟主机配置不正确,或者 perl 安装在其他地方。
【讨论】:
cgi-bin 中没有脚本可以运行,我检查了 perl 的路径,它是 usr/bin/perl。我想我必须与托管方的支持人员谈谈。【参考方案4】:我已经和托管公司谈过了,他们说他们不提供任何“CGI/PERL”脚本托管...
所以,问题解决了……(有点)。
教训:在购买主机包之前务必仔细阅读:D
【讨论】:
以上是关于复杂的 cgi 脚本可以工作,但 test.cgi 不能的主要内容,如果未能解决你的问题,请参考以下文章
Python CGI 脚本 IOError Broken Pipe