2011-01-23 164 views
0

当我尝试通过浏览器访问我的“hello world”perl脚本(hello.cgi)时,浏览器发出500内部服务器错误。导致500内部服务器错误的CGI文件

但是,当我将相同文件的文件结尾更改为hello.pl时,我可以通过浏览器访问它。我也试着在同一个目录下用python脚本(hello.py)解决这个问题,它工作得很好。

我已经改变了httpd.conf中有以下:

AddHandler的CGI脚本的CGI的.py特等

的AllowOverride无 SetHandler CGI脚本 选项+ ExecCGI 令允许,否认 全部允许

我已到处寻找解决此问题,但似乎没有任何工作。请帮忙。

+0

除了网页错误信息,Apache服务器日志还可以在排除CGI脚本故障时,特别是站点/虚拟主机的错误日志时提供一些额外的线索。只是FYI。 – 2011-01-23 12:34:17

回答

0

你可能忘了print "Content-Type: text/html\n\n"或其他。

1

确保shebang线是正确的。 Apache服务器必须知道perl解释器的位置,即perl.exe的位置。如果perl.exe不在/ usr/bin/perl中(就像你的shebang所说的那样),那么它将不起作用。

,直到我改变了我的家当以#我没有得到任何东西!C:/ Program Files文件(x86)的/Perl64/bin/perl.exe

(顺便说一句,我知道它是什么,喜欢看的年龄!对于这些东西的帮助,祝你好运)

0

我会建议:如果您使用的主机配置之前2.0

  • 给脚本执行使用GoDaddy的基于Web的文件管理器
  • 权限,然后我相信你的Perl脚本只能位于cgi目录中。升级到2.0+,您的Perl脚本可以驻留在您的主机帐户的任何位置。
  • 尝试Unix行结尾重新保存perl脚本,或者尝试对其进行编辑,并与GoDaddy的基于Web的文件管理器保存它(这是最终为我工作)
  • 正如前面提到的,它也可能是不完整的HTTP正在发送头文件
  • 如果所有其他操作都失败,则在主机管理器中打开错误日志记录,您将在文件管理器中看到一个名为“错误日志”的目录,该目录应该会有所帮助。