【问题标题】:LAMPP - CGI-Script not workingLAMPP - CGI 脚本不工作
【发布时间】:2017-04-11 11:49:27
【问题描述】:

你好

我有一个 LAMPP 网络服务器。我试图打开一个名为“Hello.cgi”的 CGI 脚本。

它包含:

#!/usr/bin/perl
print "Hello World.\n";

路径为:/opt/lampp/htdocs/dashboard/cgi-bin/hello.cgi

当我打开:“127.0.0.1/dashboard/cgi-bin/hello.cgi”时,我得到以下信息:

服务器错误!

服务器遇到内部错误,无法完成您的请求。

错误信息: 头文件前的脚本输出结束:hello.cgi

如果您认为这是服务器错误,请联系网站管理员。

CGI 脚本是用 Perl 编写的。

如果您需要有关我的问题的更多信息,请说出来。

~~运行

【问题讨论】:

  • 基本上有 100 种不同的事情可能是错误的。你检查过服务器日志吗?您是否尝试过从命令行运行脚本?您是否发送任何 HTTP 标头?
  • @MattJacob 我现在在命令行中运行它,它工作正常。谢谢!
  • 是的,但是......这只是证实了脚本本身没有问题。
  • 如果不是脚本,那么就是服务器?

标签: perl cgi lampp


【解决方案1】:

首先,你不应该在不包含use strict;use warnings; 行的情况下编写Perl 程序。

其次,如果您在使用 CGI 程序时遇到问题,您应该查看网络服务器错误日志以获取更多问题的详细信息。

第三,CGI 程序的输出需要包含内容类型标头。因此,您需要添加以下内容:

print "Content-Type: text/plain\015\012\015\012";

如果您使用CGI module,这会变得更容易:

use CGI;
print header('text/plain');

但实际上,在 2016 年,您不应该编写 CGI 程序 - 有 plenty of good alternatives 可用。

【讨论】:

    猜你喜欢
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    相关资源
    最近更新 更多