ModPerl :: Registry - 无法运行CGI perl脚本

时间:2014-09-05 13:14:15

标签: perl apache2 cgi mod-perl2 mod-perl-registry

我在Apache 2.4.7和Ubuntu 14.04下。

我试图在ModPerl::Registry下运行以下基本perl脚本(/home/fred/workspace/portfolio/cgi/fred.pl)但它不会执行(浏览器对待)它作为要下载的文件,而不是perl脚本)

#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "Hi Fred !";

这是我的虚拟主机配置:

<VirtualHost 127.0.0.1:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /home/fred/workspace/portfolio/html

AddHandler perl-script .cgi .pl
PerlModule ModPerl::Registry
Alias / /home/fred/workspace/portfolio/cgi/
<Location />
        SetHandler perl-script
        PerlHandler ModPerl::Registry
        Require all granted
        Options +ExecCGI
</Location>

我以前跑过

sudo a2enmod cgi

实际启用了cgid(我的apache是​​线程化的),很好。

当我输入127.0.0.1/fred.pl时,没有执行(fred.pl有权利777)

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:0)

我要检查的第一件事是您已获得正确的apache配置文件。 (简单的检查方法:输入语法错误,看看重启服务器时是否会抱怨。)

如果它是正确的文件,那么您的配置指令就会出现问题。在没有看到整个文件的情况下调试那些很难。您可以尝试从一个非常简单的配置部分开始,例如here

我可能会关闭cgid,直到你也能使用它。

答案 1 :(得分:0)

Fist,PerlHandler处理程序是mod_perl1指令。 mod_perl2有PerlResponseHandler处理程序替代。

以下是正确的:

PerlResponseHandler ModPerl::Registry

你加载了mod_perl.so吗?当您使用Ubuntu时,请键入:

sudo a2enmod perl

或编写合适的LoadModule行并重新启动服务器。

也许,还有其他问题。但是我没有足够的信息。

最后我建议mod_perl2现在不支持Apache 2.4 (2014年12月)。