我是cgi和Perl的新手,但我正在尝试使用perl脚本显示网页的ENV。我在vhost1目录中创建了一个index.html页面,该目录指向我的.pl页面,该页面位于我的cgi-bin目录中。目录路径按照相应的顺序/var/www/html/vhost1/index.html和/var/www/html/vhost1/cgi-bin/first.pl进行操作。 我的index.html代码如下
<html>
<head>
</head>
<body>
<h1>Hello World!</h1>
<a href = "cgi-bin/first.pl" target="_blank"> My First Perl Page</a>
</body>
</html>
我的.pl页面看起来像
#!usr/bin/perl
print "Content-type: text/html \n\n ";
print "Hello, Nate";
foreach $key (sort keys %ENV)
{
print "$key -> $ENV($key) <br>\n";
}
我使用Centos7来完成这个项目我的主页的URL路径是 http://131.183.223.173/vhost1/
我希望我的ENV结果显示在新标签中,而不是下载到我的电脑上。
答案 0 :(得分:0)
这与您的HTML或Perl程序没有任何关系。这取决于您的Web服务器配置。您的Web服务器(我认为是Apache)需要配置为将/var/www/html/vhost1/cgi-bin/
识别为CGI目录。
您的虚拟主机配置文件中需要这样的内容。
ScriptAlias /cgi-bin/ "/var/www/html/vhost1/cgi-bin/"
或者
<Directory "/var/www/html/vhost1/cgi-bin/">
Options +ExecCGI
AddHandler cgi-script .pl
</Directory>
修复后,您将停止将源代码发送到您的浏览器。但是,在那时,您几乎肯定会得到一个“500错误”页面。然后,您可以处理修复CGI程序中的错误(从错误的shebang行和内容类型标题开始)。