问题标签 [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 投票
4 回答
2591 浏览

perl - 如何追踪 mod_perl 内存泄漏?

我正在使用 mod perl 1.3.0 和 apache 1.3.41 perl 版本 5.8.6,内存大小似乎每 3 次或 4 次请求增加约 4k。我们正在运行的 Perl 脚本很简单:

然而,当我们用 apache benchmark 猛击它时,那个 apache 进程只会增长和增长。我们正在使用:

在大约 20000 个请求之后,我们观察到进程大小从大约 4 MB 增长到 24。

回答以下问题:我们在 redhat enterprise 4.7 上执行此操作。它之所以被挑出来是因为我们遇到了一个静态文件,或者是一个直接的 cgi 请求并且内存没有增长。当我们使用 PerlHandler Apache::Registry 或 PerlRun,或者只是将 PerlHandler 指向一些作为处理程序的代码时,它们都会泄漏。

有谁见过这样的事情,或者知道发生了什么?

编辑:

谢谢你们的答案。我使用了 Devel::Cycle 并发现了一个漏洞,但这里的问题是我们已经剥离了代码以打印标题和语句。Perl 中的打印功能不会泄漏(我希望....)。我读过 Practical Modperl 中的内存泄漏部分,但它处理编码问题,而且除非 Perl 的打印功能有问题,否则它不是代码。

0 投票
1 回答
416 浏览

apache - 如何确定 SunOS 上进程的非共享内存大小?

有没有办法确定 SunOS 上进程的非共享内存大小?如果有帮助,特别是在 mod_perl 下运行的子 httpd 进程的大小。

0 投票
2 回答
351 浏览

perl - 我可以让单个 Perl 模块充当多种 mod_perl 处理程序吗?

我正在为 Apache 中的各种登录相关功能编写一系列相关的 mod_perl 处理程序,所以我的 Apache 配置文件看起来像这样(例如)

每个模块 ( MyAccess, MyAuthen, MyAuthz) 定义了一个

mod_perl在请求处理的相关点调用。

我想知道的是,是否有一种方法可以用一个 Perl 模块而不是三个来做到这一点(安装一个模块而不是 3 个模块更整洁,用户工作量也更少)?

有没有办法定义处理程序方法的名称,也许。或者有没有办法从handler()代码中检测我应该做哪种处理?

0 投票
1 回答
418 浏览

ruby-on-rails - mod_perl 和Passenger 如何在同一个Apache 服务器上运行?

这甚至可能吗?

我有一个在Passenger 上运行的Rails 应用程序和一个需要在同一台服务器上运行的mod_perl 站点。我已经尝试设置两个 VirtualHost,并且我尝试只使用一个 VH 和一个别名/位置作为 mod_perl。在这两种情况下,Passenger 都会尝试为 mod_perl 应用程序提供服务,并告诉我它找不到正确的文件。有人知道我在做什么错吗?

这是我的设置自动取款机:

0 投票
3 回答
336 浏览

perl - 如何在共享 RHEL 服务器上托管 mod_perl 应用程序?

我想在无法访问 root 帐户的共享 RHEL 服务器上托管 mod_perl 应用程序。mod_perl 在服务器上可用,所有需要的 Perl 模块也可用(我的应用程序在 CGI 下运行良好)。

以下是我预计的两个问题:每当我第一次更新我的代码以及随后定期更新时,都需要重新启动 Apache。其次,我必须在.htaccess 中使用一些<Perl> 指令。我很高兴听到其他可能成功完成此任务的人的经验、陷阱和提示。谢谢!

0 投票
2 回答
347 浏览

perl - 为什么在 mod_perl 中加载我的 Perl 模块会导致 Apache 挂起?

我有一个 mod_perl 程序,它实现了它自己的处理函数(即它不使用 Apache::Registry)。

我有一个使用 Parse::RecDescent 编写的解析器模块。

几个月来,我一直在另一个类似的 mod_perl 程序中成功使用解析器模块,没有任何问题。

简单地在我的新 mod_perl 程序中“使用”解析器模块(即不引用模块中的函数)会导致 Apache 服务器产生子进程,直到它达到最大限制。注释掉“use”语句解决了这个问题(但显然我没有使用解析器)。

我怀疑包含库正在做一些导致 Apache 生命周期在它结束之前挂起的事情。我相信这是在记录阶段之后发生的,因为发送了响应并且更新了日志。

有人对我有任何线索吗?我不知所措。

--菲尔--

0 投票
2 回答
1615 浏览

perl - 如何将 Perl 代码从 mod_perl 移植到 FastCGI?

我们有一个现有的 Perl 应用程序,它支持mod_perl. 但是,我们的新主机(Dreamhost)不支持 mod_perl,只支持 FastCGI;因此需要港口。

现有代码不使用任何 Apache 特定的东西,只是普通的 Perl 代码,以mod_perl.

阅读文档和在线教程,似乎添加 FastCGI 支持涉及将现有代码包装在特定类型的循环中。以下是最常见的骨架代码:

A. 使用 FCGI

B. 使用 CGI::Fast

子问题:

  1. 方法AB是添加 FastCGI 支持的等效方法吗?
  2. 如果AB不同,那么使用其中一个的优缺点是什么?
  3. mod_perl从FastCGI移植时,是否有任何最佳实践或陷阱?

谢谢。

0 投票
1 回答
824 浏览

perl - 为什么我对 Perl 5.10、Mason 和 Apache 感到恐慌?

我正在使用 Perl 5.10、HTML::Mason和 apache 2.2 开发应用程序。这是我第一次将 Perl 5.10 用于大型项目。我每隔一段时间就会有一种奇怪的行为。该应用程序因一个非常奇怪的错误而死:

我想我的问题是 Perl 5.10,因为我以前从未经历过这种情况,还是其他一些错误的依赖?

非常感谢!

0 投票
1 回答
1419 浏览

perl - 如何确定连接在 mod_perl 中使用的 SSL 客户端证书?

我正在用 Perl 编写一个 Web 服务,它将在带有客户端证书的 SSL (HTTPS) 下运行。如何确定当前连接中客户端正在使用哪个证书,以便过滤掉不需要的证书?

注意:Web 服务作为 mod_perl 脚本运行。

0 投票
3 回答
2190 浏览

perl - mod_perl headers_in 不工作

我在 Red Hat 5.2 上将 mod_perl 2 与 Apache 2.2.3 一起使用,并且我正在尝试访问请求标头,但是 Apache2::RequestRec headers_in方法(或者更确切地说,它的返回值)的行为方式与我不同预计。

代码片段:

给出以下日志输出:

一旦尝试对 APR::Table 进行任何访问,执行似乎就会停止。APR::Table 的绑定接口具有相同的效果 -get('Accept')即将行更改为:

给出完全相同的日志输出。

根据上面的链接文档:

该表从 PerlHeaderParserHandler 阶段开始可用

所以我希望我的代码在 PerlResponseHandler 阶段运行,能够访问标头。

有谁知道我做错了什么?

编辑:使用 Data::Dumper 并没有真正澄清问题。

代码:

输出:

因此,即使通过 Data::Dumper 尝试进入 $headers 似乎也会导致执行停止。

编辑:尝试设置其中一个标题也失败了。

停止日志输出

观点。我也尝试了set(Accept => 'everything')替代方法,结果相同。