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

ModPerl::Registry-无法运行CGI perl脚本,perl,apache2,cgi,mod-perl2,mod-perl-registry,Perl,Apache2,Cgi,Mod Perl2,Mod Perl Registry,我使用的是Apache2.4.7和Ubuntu 14.04 我试图在下运行以下基本perl脚本(/home/fred/workspace/portfolio/cgi/fred.pl),但它不会执行(浏览器将其视为要下载的文件,而不是perl脚本) 这是我的虚拟主机配置: <VirtualHost 127.0.0.1:80> ServerAdmin webmaster@localhost DocumentRoot /home/fred/workspace

我使用的是Apache2.4.7和Ubuntu 14.04

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

这是我的虚拟主机配置:

<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>
这实际上启用了cgid(我的apache是线程化的),很好

当我键入127.0.0.1/fred.pl时,没有执行(fred.pl拥有权限777)

有什么想法吗


谢谢

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

如果它是正确的文件,那么您的配置指令就有问题。如果不查看整个文件,就很难调试它们。您可以尝试从一个非常简单的配置部分开始,比如


我可能会关闭cgid,直到您也能正常工作。

首先,
PerlHandler
处理程序是mod_perl1指令。mod_perl2具有
PerlResponseHandler
handler替代方案

因此,以下是正确的:

PerlResponseHandler ModPerl::Registry
您是否加载了mod_perl.so?使用Ubuntu时,请键入:

sudo a2enmod perl
或者编写合适的
LoadModule
行并重新启动服务器

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


最后,我建议mod_perl2现在(2014年12月)不正式支持Apache2.4

您检查错误日志了吗?是的,error.log中没有异常。在access.log:127.0.0.1---[05/Sep/2014:14:58:06+0200]“GET/fred.pl HTTP/1.1”200249-“Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:32.0)Gecko/20100101 Firefox/32.0”如果我说curl有效,有帮助吗?
PerlResponseHandler ModPerl::Registry
sudo a2enmod perl