CGI文件导致500内部服务器错误

时间:2011-01-23 12:28:45

标签: cgi

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

然而,当我将同一文件的文件结尾更改为hello.pl时,我可以通过浏览器访问它。我也尝试使用python脚本(hello.py)在同一目录中对此进行故障排除,它可以正常工作。

我已使用以下内容更改了httpd.conf:

AddHandler cgi-script .cgi .py .pl

    AllowOverride无     SetHandler cgi-script     选项+ ExecCGI     订单允许,拒绝     允许所有人

我到处寻找解决这个问题,但似乎没有任何效果。请帮忙。

3 个答案:

答案 0 :(得分:1)

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

在我将shebang改为#!C:/ Program Files(x86)/Perl64/bin/perl.exe

之前,我没有得到任何东西

(顺便说一下,我知道寻找帮助这些东西的年龄是多少。祝你好运!)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我建议:

  • 使用GoDaddy的基于Web的文件管理器
  • 为脚本执行权限
  • 如果您使用2.0之前的主机配置,那么我相信您的perl脚本只能位于cgi目录中。升级到2.0+,您的perl脚本可以驻留在您的主机帐户的任何位置。
  • 尝试使用unix行结尾重新保存perl脚本,或尝试编辑并使用GoDaddy的基于Web的文件管理器保存它(这最终对我有用)
  • 如前所述,它也可能是不完整的HTTP标头发送
  • 如果所有其他方法都失败,请在主机管理器中启用错误日志记录,您将在文件管理器中看到一个名为“错误日志”的目录,该目录可以帮助您进一步帮助。