CGI 和 mod_perl 可以很好地协同工作吗?

发布于 2024-12-06 21:18:00 字数 326 浏览 2 评论 0原文

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

我想继续在服务器上安装 mod_perl,这似乎是一个相对简单的过程,但我对 Google 搜索中出现的一些内容感到困惑。 如果我安装 mod_perl(通过 debian 存储库),我现有的所有 CGI 是否会突然开始“使用 mod_perl”并表现出潜在的奇怪行为?

或者 apache 中是否需要进行一些配置才能让旧的 CGI“开始使用 mod_perl”?

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

I've got an apache web server (without mod_perl) that's been running just fine for a long time.
It has been suggested that we use mod_perl to improve the performance of some scripts.

I want to go ahead and install mod_perl on the server, which seems to be a relatively straightforward process, but I'm confused by some of the stuff coming up on Google searches.
If I install mod_perl (through the debian repositories), will all of my existing CGIs suddenly start "using mod_perl" and exhibiting potentially wonky behavior?

Or is there some configuration in apache that needs to be done for an old CGI to "start using mod_perl"?

Apologies if this is a straightforward answer but I am confused by the terminology being used in multiple ways in the documentation.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦醒时光 2024-12-13 21:18:00

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

通常,您为每个 VHost 启用 mod_perl。虚拟主机的 mod_perl 的常见配置如下所示:

<VirtualHost some.funny-domain.com>  
    ServerName some.funny-domain.com
    ServerAdmin [email protected]
    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 安装,以便能够轻松“回滚”。

注释:“Perlrequire /data/path/to/startup.pl”行不是必需的。它是可选的,并为 mod_perl env 下运行的脚本设置一些环境变量。

mod_perl has to be configured in your httpd.conf to be enabled. So not every script on your server will start to use mod_perl automatically.

Usually, you enable mod_perl per VHost. A usual configuration of mod_perl for a vhost looks like this:

<VirtualHost some.funny-domain.com>  
    ServerName some.funny-domain.com
    ServerAdmin [email protected]
    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>

Be carefull with the automated install-process! It may enable mod_perl on the wrong host for some reason! BackUp your config and apache-installation first to be able to "roll back" easily.

Comment: The line "Perlrequire /data/path/to/startup.pl" is not required. It is optional and sets some environment variables for the running scripts under the mod_perl env.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文