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



我在Apache 2.4.7和Ubuntu 14.04下。

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

#!/usr/bin/perl
print "Content-type: text/htmlnn";
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权限)

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

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

我可能会关闭cgid,直到你也能做到这一点。

首先,PerlHandler处理程序是mod_perl1指令。mod_perl2有PerlResponseHandler处理程序可供选择。

所以以下是正确的:

PerlResponseHandler ModPerl::Registry

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

sudo a2enmod perl

或者写入合适的CCD_ 4行并重新启动服务器。

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

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

在httpd.conf文件中,您需要添加以下行

LoadModule cgid_module modules/mod_cgid.so

这使得能够在apachehttpd服务器中执行CGI脚本。

您还需要添加以下行perlCGI执行权限。

PerlSwitches -w

相关内容

  • 没有找到相关文章

最新更新