问题标签 [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.
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 的打印功能有问题,否则它不是代码。
apache - 如何确定 SunOS 上进程的非共享内存大小?
有没有办法确定 SunOS 上进程的非共享内存大小?如果有帮助,特别是在 mod_perl 下运行的子 httpd 进程的大小。
perl - 我可以让单个 Perl 模块充当多种 mod_perl 处理程序吗?
我正在为 Apache 中的各种登录相关功能编写一系列相关的 mod_perl 处理程序,所以我的 Apache 配置文件看起来像这样(例如)
每个模块 ( MyAccess
, MyAuthen
, MyAuthz
) 定义了一个
它mod_perl
在请求处理的相关点调用。
我想知道的是,是否有一种方法可以用一个 Perl 模块而不是三个来做到这一点(安装一个模块而不是 3 个模块更整洁,用户工作量也更少)?
有没有办法定义处理程序方法的名称,也许。或者有没有办法从handler()
代码中检测我应该做哪种处理?
ruby-on-rails - mod_perl 和Passenger 如何在同一个Apache 服务器上运行?
这甚至可能吗?
我有一个在Passenger 上运行的Rails 应用程序和一个需要在同一台服务器上运行的mod_perl 站点。我已经尝试设置两个 VirtualHost,并且我尝试只使用一个 VH 和一个别名/位置作为 mod_perl。在这两种情况下,Passenger 都会尝试为 mod_perl 应用程序提供服务,并告诉我它找不到正确的文件。有人知道我在做什么错吗?
这是我的设置自动取款机:
perl - 如何在共享 RHEL 服务器上托管 mod_perl 应用程序?
我想在无法访问 root 帐户的共享 RHEL 服务器上托管 mod_perl 应用程序。mod_perl 在服务器上可用,所有需要的 Perl 模块也可用(我的应用程序在 CGI 下运行良好)。
以下是我预计的两个问题:每当我第一次更新我的代码以及随后定期更新时,都需要重新启动 Apache。其次,我必须在.htaccess 中使用一些<Perl> 指令。我很高兴听到其他可能成功完成此任务的人的经验、陷阱和提示。谢谢!
perl - 为什么在 mod_perl 中加载我的 Perl 模块会导致 Apache 挂起?
我有一个 mod_perl 程序,它实现了它自己的处理函数(即它不使用 Apache::Registry)。
我有一个使用 Parse::RecDescent 编写的解析器模块。
几个月来,我一直在另一个类似的 mod_perl 程序中成功使用解析器模块,没有任何问题。
简单地在我的新 mod_perl 程序中“使用”解析器模块(即不引用模块中的函数)会导致 Apache 服务器产生子进程,直到它达到最大限制。注释掉“use”语句解决了这个问题(但显然我没有使用解析器)。
我怀疑包含库正在做一些导致 Apache 生命周期在它结束之前挂起的事情。我相信这是在记录阶段之后发生的,因为发送了响应并且更新了日志。
有人对我有任何线索吗?我不知所措。
--菲尔--
perl - 如何将 Perl 代码从 mod_perl 移植到 FastCGI?
我们有一个现有的 Perl 应用程序,它支持mod_perl
. 但是,我们的新主机(Dreamhost)不支持 mod_perl,只支持 FastCGI;因此需要港口。
现有代码不使用任何 Apache 特定的东西,只是普通的 Perl 代码,以mod_perl
.
阅读文档和在线教程,似乎添加 FastCGI 支持涉及将现有代码包装在特定类型的循环中。以下是最常见的骨架代码:
A. 使用 FCGI
B. 使用 CGI::Fast
子问题:
- 方法A和B是添加 FastCGI 支持的等效方法吗?
- 如果A和B不同,那么使用其中一个的优缺点是什么?
mod_perl
从FastCGI移植时,是否有任何最佳实践或陷阱?
谢谢。
perl - 为什么我对 Perl 5.10、Mason 和 Apache 感到恐慌?
我正在使用 Perl 5.10、HTML::Mason和 apache 2.2 开发应用程序。这是我第一次将 Perl 5.10 用于大型项目。我每隔一段时间就会有一种奇怪的行为。该应用程序因一个非常奇怪的错误而死:
我想我的问题是 Perl 5.10,因为我以前从未经历过这种情况,还是其他一些错误的依赖?
非常感谢!
perl - 如何确定连接在 mod_perl 中使用的 SSL 客户端证书?
我正在用 Perl 编写一个 Web 服务,它将在带有客户端证书的 SSL (HTTPS) 下运行。如何确定当前连接中客户端正在使用哪个证书,以便过滤掉不需要的证书?
注意:Web 服务作为 mod_perl 脚本运行。
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')
替代方法,结果相同。