【问题标题】:How can I enable Perl web scripts to run on Apache?如何使 Perl Web 脚本能够在 Apache 上运行?
【发布时间】:2011-04-13 00:21:50
【问题描述】:

我有一个 Perl 脚本,它在 Web 浏览器上编写为 print "Hello!"。我使用 apache 作为我的本地主机服务器。我使用的操作系统是 Red Hat 5。

问题是当我输入地址 http://localhost/example.plhttp://127.0.0.1/example.pl 时,它显示我正是整个脚本代码,但不是“你好!”应该输出的单词。

Perl 脚本:

#!/usr/bin/perl

print "content-type: text/html \n\n";

print "Hello, Perl!";

有人对此有任何想法吗?谢谢!

【问题讨论】:

  • stackover 流的更多积分!嘿,布莱恩,你认为我在发布这个问题之前没有遵循“教程”吗?再想想吧!
  • 如果您没有明确说明,brian 将不知道您是否阅读过任何教程。他所要做的就是你在帖子中展示的知识水平。
  • 我不明白为什么人们不赞成这个问题?问题被问到 b/c 人们不知道如何做某事。这没有被要求增加 SO pts。这是一个有效的问题,+1

标签: perl apache cgi


【解决方案1】:

你必须把它放在cgi-bin

正如您所注意到的,未由解释器处理的文件作为可下载的文本文件返回,因此 apache 指定了服务器将解释/处理文件的空间(通用网关接口 bin)。

首先你必须设置 apache 指向一个 cgi-bin 目录——它默认这样做,你可以把你的文件放在那里。 一旦您的文件在那里,URI 将类似于:http://localhost/cgi-bin/example.pl


注意:您不能将html/js 放入cgi-bin,因为它们将被处理并导致服务器故障。

我建议从 apache 的网站上阅读更多内容。

【讨论】:

  • 我对 conf 文件进行了所有必要的更改,但它仍然无法正常工作。现在它告诉我“在此服务器上找不到请求的 URL /cgi-bin/example.pl”的错误。你知道我在哪里可以找到 Linux 中的 .htaccess 文件吗?
  • 好吧,你不必把它放在/cgi-bin/中。您必须将其放在网络服务器将其识别为可执行文件的位置。你必须告诉网络服务器如何处理。
  • 默认情况下应该已经创建了一个 cgi-bin。您不需要触摸 .htaccess 文件。一旦你让它在 cgi-bin 中工作,你可以使用 Redirect/RewriteRules 来屏蔽路径所以http://localhost/index.cgi -> http://localhost/cgi-bin/index.cgi
【解决方案2】:

Apache 文档告诉您如何配置您的网络服务器以在 Apache Tutorial: Dynamic Content with CGI 中运行 CGI 程序。

【讨论】:

    猜你喜欢
    • 2014-09-13
    • 2018-01-30
    • 2014-11-04
    • 2012-02-18
    • 1970-01-01
    • 2010-09-27
    • 2010-09-26
    • 2010-10-08
    相关资源
    最近更新 更多