如何在localhost中运行perl脚本?

时间:2012-01-18 13:47:55

标签: perl apache chmod mod-perl cgi-bin

我已经安装了Apache。我在localhost中使用PHP编写脚本。需要知道如何运行perl脚本。 我已经安装了sudo aptitude install libapache2-mod-perl2 我在/ var / www / cgi-bin中创建了一个目录名cgi-bin 在这个文件夹里面,我保存了我的perl脚本perl_1.pl 给出了目录权限。 我还需要做什么来运行脚本???? 我只需输入http://localhost/cgi-bin/ 我得到了错误403 您无权访问此服务器上的/ cgi-bin /。 请帮助!!

由于

3 个答案:

答案 0 :(得分:5)

你无法阅读cgi-bin内容。您必须直接引用其中的一个脚本,在这种情况下:http://localhost/cgi-bin/perl_1.pl

除此之外,请确保在httpd.conf中实际处理您的cgi-bin /目录。

哦,以防万一你偶然发现500:确保你的perl脚本打印出一个有效的HTTP头。这可以通过以下方式轻松实现:

use CGI qw(:standard);
print header();

正如Pwex指出的那样:确保你的脚本设置了可执行位。

chmod 755 perl_1.pl

......应该在大多数情况下都有效

此外,为了将来参考,值得一提的是mod_perl,因为在获得cgi + perl + apache的基础知识后,这是一个自然的下一步。详细介绍它将超出这个答案的范围,但我想我会提到它,以便你知道如果你已经确定了基础知识,并且看到了cgi的局限性,那么下一步该去哪里。

答案 1 :(得分:3)

您的Apache配置如何? 您是否确定告诉Apache在cgi-bin目录中执行CGI脚本?

类似的东西:

ScriptAlias /cgi-bin/ "/var/www/website/cgi-bin/"
<Directory "/var/www/website/cgi-bin/">
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

                ...
</Directory>

答案 2 :(得分:0)

如果您没有绑定到apache或者可以在不同的端口上运行这些脚本,那么您可以使用具有解决方案的Plack / PSGI工具链来运行旧的CGI脚本作为PSGI应用程序。有关实现此目的的几种方法,请参阅Running CGI scripts on Plack