CGI和mod_perl一起玩得很好吗?

时间:2011-09-28 17:05:32

标签: apache2 cgi mod-perl

我有一个apache web服务器(没有mod_perl)已经运行很长时间了。 有人建议我们使用mod_perl来提高某些脚本的性能。

我想继续在服务器上安装mod_perl,这似乎是一个相对简单的过程,但我对谷歌搜索中出现的一些东西感到困惑。 如果我安装mod_perl(通过debian存储库),我所有现有的CGI会突然开始“使用mod_perl”并展示可能不稳定的行为吗?

或者在apache中是否需要为旧的CGI“开始使用mod_perl”做一些配置?

道歉,如果这是一个简单的答案,但我对文档中以多种方式使用的术语感到困惑。

1 个答案:

答案 0 :(得分:1)

必须在httpd.conf中配置mod_perl才能启用。因此,服务器上的每个脚本都不会自动开始使用mod_perl。

通常,您为每个VHost启用mod_perl。 vhost的mod_perl的常规配置如下所示:

<VirtualHost some.funny-domain.com>  
    ServerName some.funny-domain.com
    ServerAdmin admin@funny-domain.com
    DocumentRoot /data/path/to/root/
    Perlrequire /data/path/to/startup.pl
    PerlModule Apache2::Reload
    PerlInitHandler Apache2::Reload
    PerlModule Apache2::RequestRec

    ScriptAlias /cgi-bin/ "/data/path/to/root/cgi-bin/"

    <Location /cgi-bin/>
            SetHandler perl-script
            PerlResponseHandler ModPerl::Registry
            PerlOptions +ParseHeaders
            PerlOptions +SetupEnv
            Options +ExecCGI
    </Location>
    CustomLog logs/access.log combined
    ErrorLog logs/error.log
</VirtualHost>

小心自动安装过程!由于某种原因,它可能在错误的主机上启用mod_perl!首先备份您的配置和apache-installation,以便能够轻松“回滚”。

评论 :不需要“ Perlrequire /data/path/to/startup.pl ”这一行。它是可选的,并为mod_perl env。

下的运行脚本设置一些环境变量