cgi脚本没有执行

时间:2011-09-19 13:38:32

标签: perl cgi

我有一个perl.cgi文件,其中包含以下内容:

#!/usr/bin/perl 
print "Content-type: text/html\n\n";
print "<h1>Hello World</h1>\n";

我让它可执行。 (chmod a+x perl.cgi

然后我在同一目录中创建了一个新文件perl.htm。其中包含以下数据:

Content-type: text/html
<p><a href="perl.cgi">RUN perl.cgi</a></p>

当我在浏览器中运行perl.htm时,我得到的输出为:

Content-type: text/html
RUN perl.cgi

当我点击RUN perl.cgi打开另一个页面时,输出为:

#!/usr/bin/perl 
print "Content-type: text/html\n\n";
print "<h1>Hello World</h1>\n";

即。 perl.cgi未执行。仅显示文件内容。

编辑:从答案和评论中我了解到我必须配置我的网络服务器(apache)才能运行cgi脚本。我怎样才能做到这一点?让我知道。

4 个答案:

答案 0 :(得分:10)

听起来Apache没有配置为运行* .cgi文件:

AddHandler cgi-script cgi pl
<Directory /path/to/cgi/files>
    Options +ExecCGI
</Directory>

答案 1 :(得分:6)

确保在httpd.conf文件中加载CGI模块:

LoadModule cgi_module modules/mod_cgi.soLoadModule cgi_module modules/mod_cgid.so取决于您正在运行的Apache版本。

您还可以阅读有关其他解决方案的信息 Dynamic Content with CGI

答案 2 :(得分:3)

问题已经解决了。我根本没有使用httpd服务,是从file:// URL打开的。

Perl script is not executing in HTML form

答案 3 :(得分:0)

您需要设置您的Web服务器,以便它执行* .cgi文件(或者更常见的是,执行特定目录中的所有文件),而不是像将它们传送到浏览器那样.html文件。

如何完成此操作取决于您的服务器。