问题标签 [mod-perl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
20512 浏览

php - apache模块与cgi(关于安全性)之间有区别吗?

例如mod_php,使用而不是更安全php-cgi吗?还是使用起来mod_perl比传统的更安全cgi-scripts

我主要对安全问题感兴趣,但如果存在显着差异,速度可能是一个问题。

0 投票
3 回答
1899 浏览

perl - 如何使用带有自编译 Perl 和 mod_perl 的供应商 Apache?

我想使用 Apple 或 RedHat 的内置 Apache,但我想使用 Perl 5.10 和 mod_perl。实现此目的的最少侵入方式是什么?我想要为供应商的 Apache、dav、php 等提供免费安全补丁的优势,但我非常关心我使用的 Perl 版本以及我的 @INC 路径中的内容。我不介意编译我自己的 mod_perl。

0 投票
6 回答
2246 浏览

macos - 如何在 OS X Leopard 的默认 Apache 2 下安装 modperl?

我在默认的 vanilla Leopard Apache 2 下安装 modperl 的尝试失败了,我在网上能找到的只是方面的变体:

如果可能的话,我希望不依赖 MacPorts 或 Fink,但如果可以使它们与默认的 Apache 2 安装一起使用,那可能没问题。

0 投票
4 回答
578 浏览

mysql - mod_perl 下的 MySQL 驱动程序段错误 - 在哪里寻找问题

我有一个 web 应用程序,当数据库重新启动并尝试使用旧连接时会出现段错误。在下运行它gdb --args apache -X会导致以下输出:

我检查了驱动程序和数据库是否都是最新的(DBD::mysql 4.0008,MySQL 5.0.32-Debian_7etch6-log)。

恼人的是,我无法用一个简单的脚本来重现这个:

这给出了以下内容:

这行为正确,告诉我请求失败的原因。

让我难过的是它是段错误,它不应该这样做。由于它似乎只在整个应用程序运行(使用DBIx::Class)时发生,因此很难将其简化为测试用例。

我应该从哪里开始调试呢?有没有其他人看过这个?

更新:进一步的刺激表明它在 mod_perl 之下是一个红鲱鱼。将其简化为一个简单的测试脚本后,我现在已将其发布到DBI 邮件列表。感谢您的回答。

0 投票
6 回答
465 浏览

performance - 使用 mod_perl 时,如何仅在编译时执行低效代码?

我一直在对我用 Perl 编写的框架的性能进行基准测试,与我们现有的代码库相比,每秒请求数减少了 50%(有些命中是可以理解的,因为我们正在从程序化的意大利面条代码变为OOP MVC 框架)。

该应用程序在 mod_perl 下运行,我已将Moose和我所有的框架代码添加到startup.pl 脚本中,这本身使我每秒的请求量增加了一倍。我希望进一步提高这个数字,使其尽可能接近现有数量。有人认为这是过早的优化,但是我想解决一些明显的低效率问题,看看它是如何影响性能的。

像大多数框架一样,我有一个配置文件和一个调度程序。配置部分由Config::General处理,因此需要进行一些 IO 和解析才能将我的配置文件加载到应用程序中。我在这里看到的最大问题是我正在为每一个进来的请求做这个!

在我的应用程序上运行 Devel::Dprof 指向 Config::General::BEGIN 和一堆相关的 IO 模块作为不是 Moose 的主要慢点之一。所以我想做的,事后看来更有意义的是利用 mod_perl 的持久性和 startup.pl 编译的东西,只做一次加载配置文件的工作 - 当服务器启动时。

问题是我不太熟悉它是如何工作的。

目前每个项目都有一个 PerlHandler 引导类,它非常精简,看起来像这样:

MyApp.pm 继承自框架 Project 模块,该模块具有以下代码:

仅在编译时执行此操作,我的引导程序和项目基础模块都必须更改(我认为),但我非常不确定要进行哪些更改并且仍然保持代码的美观和精简。谁能在这里指出我正确的方向?

更新

我在每个项目模块方法中尝试了 BEGIN BLOCK,如 ysth 在他的回答中所述。所以我现在有:

仅这一快速更改就让我每秒的请求数增加了50% ,这证实了我的想法,即配置文件是一个值得修复的主要瓶颈。我们古怪的旧开发机器上的基准数字是 60rps,仅此更改,我的框架就从 30rps 变为 45rps。对于那些说 Moose 很慢并且编译时间很短的人。在启动时编译所有 Moose 代码时,我得到了与预编译我的配置文件时相同(50%)的增长。

我现在唯一的问题是这违反了 DRY 原则,因为相同的 Config::General->new 代码在每个 BEGIN 块中,只有配置文件的路径不同。我有一些不同的策略来限制这一点,但我只是想发布这种变化的结果。

0 投票
3 回答
8999 浏览

perl - mod_perl 与 mod_fastcgi

我正在使用 Perl 开发一个 Web 应用程序,其中包含一些 C 语言,这是一些繁重的数字运算所必需的。到目前为止,我遇到的主要问题是试图决定是否应该使用 mod-perl、mod-fastcgi 或同时使用两者来运行我的脚本,因为我很难分析每个 mod 的优缺点。

任何人都可以发布摘要或提供链接,我可以在其中找到一些比较信息,也许还有一些带有示例的建议?

0 投票
3 回答
9718 浏览

perl - 如何使用 mod_perl 让 Apache 处理 .pl (Perl) 文件?

我正在使用 Apache 2。我知道如何将 .pl 文件作为“cgi-script”处理,但 mod_perl 应该更快。我成功构建并安装了 mod_perl,但是如何更改 httpd.conf 以便 .pl 文件将由 mod_perl 处理(而不是作为 cgi 脚本)?

0 投票
1 回答
1036 浏览

mod-perl - 如何使 CGI::Application::Dispatch 与 mod_perl 一起工作?

好的,所以我正在尝试使用 mod_perl 设置 Dispatcher,但我真的不知道我做错了什么。我相当肯定问题出在我的 mod_perl 配置上。以下是我认为相关的内容:

Apache 目录配置

注意: ACD::Dispatch 在 acd/ACD 中。

ACD::调度

可能最重要的是,Apache 错误:

谢谢你的帮助!

更新:我需要将此添加到我的 Apache 配置中:

0 投票
2 回答
678 浏览

perl - 如何使用 mod_perl 在 CGI::Application 中拥有持久的 DBIx::Class?

我在带有 DBIx::Class 的 mod_perl 上使用 CGI::Application,我希望在实例化时定义一个新的 dbic 模式。到目前为止,我还无法让它工作。我最接近的是一个超类,它有一个 connect() 方法,它返回一个新对象,但我宁愿它已经被连接和实例化。

我真的很感激任何想法。

谢谢!

注意:好的,显然还没有帮助,但是,与此同时,我创建了一个访问器,它可以懒惰地实例化 DBIx::Class,所以这可能会更好一些。核实:

然后当然要使用它,您可以执行以下操作:

0 投票
2 回答
2016 浏览

perl - 如何让 mod_perl 在更改时重新加载源文件?

我正在使用 mod _perl 开发一个应用程序,每次更改代码时都重新启动服务器是一个巨大的拖累。我想仍然使用 mod _perl 进行开发,因为它是我计划用于实时服务器的。我在文档中没有看到有关如何执行此操作的任何内容。

想法?