mod_perl 是我要找的吗?快速CGI?PSGI/Plack?

rob*_*rob 3 windows apache perl mod-perl

我已经用尽了在网上为这个问题寻找答案的能力。我正在尝试在 Windows 上安装 mod_perl 并且有很多死胡同。

  1. mod_perl 是我正在寻找的吗?***

    我在公司的本地网络中使用了一组 Web 应用程序,用于数据库和文件系统接口。Web服务器上运行的Apache 2.2和5.16的activeperl使用DBIDBD::mysqlCGI。客户端jQuery.getJSON使用 CGI 参数通过对 Perl 脚本的AJAX 调用 ( )获取其动态内容。流量非常小——只有 4 个左右的用户,而且一次只有几个查询。

    我遇到的问题是延迟对于这些应用程序的性质来说是不可接受的。延迟通常约为 400 毫秒,全部为等待时间。我已经尝试过越来越简单的 Perl 脚本,并相信所有的延迟都是 Perl 解释器造成的。我已经研究过 FastCGI,但据我所知,这主要处理高流量,这不是我的问题:这是每个低流量调用的开销。因此,似乎 Apache 嵌入式 Perl 解释器(正如我所理解的 mod_perl)将解决我与开销相关的延迟问题。

  2. 你如何在后兰迪科比的世界中安装它?

    我找到的用于为我的设置安装 mod_perl 的所有资源都涉及一个theory5x.uwinnipeg.ca以前由他运行的服务器,现在在他去世后已不复存在。ActivePerl ppm 没有任何 mod_perl 内置包,网站显示所有构建失败的列表。

是一个 ActiveState 社区帖子,解释了为什么没有 ppm。

我确实发现这个资源似乎包含所有缺失的部分,但草莓 Perl 除外。

所以我认为唯一的方法是从源代码安装,但我不知道如何做到这一点。我对 Linux 的熟悉程度为零,而且似乎大部分内容都是针对它的。更糟糕的是我有一个 64 位的 Windows XP 和一个 Windows Server 来安装它。

我想到的另一件事可能是我需要安装某种发行版,例如 XAMPP,而不是自己将所有部分放在一起。我现在改变路线会很紧张,并冒着破坏我的工作但缓慢的应用程序的风险

tjd*_*tjd 6

mod_perl 是我正在寻找的吗?

我希望不是。

有问题mod_perl。您的Apache,mod_perlperl需要全部使用兼容的编译器和体系结构构建,以便它们可以在运行时全部链接。当您使用 mod_perl 时,将不会运行带有 64 位 perl 的 32 位 Apache。根据我的经验mod_perl,还应该针对您的特定版本的头文件Apacheperl. 假设您正确地混合了所有这些秘诀,您现在正在运行一个 Web 服务器,该服务器可能会因编写不当的 perl 脚本而崩溃。但光明的一面,这比普通CGI更有效率。

经过几年的疯狂,FastCGI 被发明了。 通过作为一个持久但独立的进程运行,Web 服务器能够实现 mod_perl(或 mod_PHP 或 mod_python)效率,而无需二进制兼容性或稳定性风险。想想自由吧!一个 Apache 模块,只关心与它的 Apache 主机的二进制兼容性,可以将任务分给 Perl、Python、C 甚至 Visual Basic。(我只是有一个邪恶的想法,试图用 Forth 或 Lisp 来做 Web 服务,但这简直太疯狂了。)

在 linux 发行版(或其他罐装 XAMPP 堆栈)上运行可以使mod_perl 的设置和维护更容易,因为它们会将它分发到一个已编译的包中,以便与它们提供的 Apache 和 perl 包一起使用。不幸的是,如果您想使用非“官方”发行版的 Apache 或 perl 版本运行,请准备好 DIY。即便如此,发行版的软件包并不能减轻运行 mod_(language-of-choice) 固有的稳定性问题。


在任何情况下,在您以新配置启动并运行之前,您现有的 CGI 脚本都需要修改。您可以选择将它们重写为 mod_perl、FastCGI 或 PSGI/Plack 标准。如果您选择重写 PSGI/Plack 标准,那么您就不必关心 Web 服务器当前或未来配置的细节。

你如何在后兰迪科比的世界中安装它?

您问题中的最后一个链接似乎是正确的。您是否有宗教或基于PHB的理由更喜欢 ActivePerl 而不是 StrawberryPerl?最后,mod_perl要求它针对您的特定Apache版本和您的特定版本的 perl构建。这将涉及自己编译它,其他人打包多个 Apache/perl 版本组合的版本,或者其他人打包单个版本并要求您使用他们首选的 Apache 和 perl 版本。

如果您选择 mod_perl 路线并且稍微相信服务器软件应该保持最新(XP?认真的?),那么准备好自己动手或信任您的第 3 方来让您保持最新状态。当然,如果您是一个肇事逃逸的开发人员,那么这会大大解放您的选择……


TL-博士

FastCGI 是您的朋友。特别是如果您运行的是 Windows 并希望使服务器软件保持最新状态。

mod_perl 在得到负责任的发行版或负责任的开发人员的支持时效果最佳,他们愿意从源代码构建它。...反复。