我有一个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脚本。我怎样才能做到这一点?让我知道。
答案 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.so
或
LoadModule cgi_module modules/mod_cgid.so
取决于您正在运行的Apache版本。
您还可以阅读有关其他解决方案的信息 Dynamic Content with CGI
答案 2 :(得分:3)
问题已经解决了。我根本没有使用httpd服务,是从file:// URL打开的。
答案 3 :(得分:0)
您需要设置您的Web服务器,以便它执行* .cgi文件(或者更常见的是,执行特定目录中的所有文件),而不是像将它们传送到浏览器那样.html文件。
如何完成此操作取决于您的服务器。