问题标签 [mod-perl2]

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 投票
1 回答
116 浏览

perl - mod_perl 2 环境中的 WebApp 配置

我有一个我正在用 mod_perl 2 编写的 Web 应用程序。(它是一个自定义处理程序模块,而不是注册表或 perlrun 脚本。)我想在服务器初始化时设置几个配置选项,最好是从配置文件中设置。我遇到的问题是我没有找到一个为我的应用程序的配置文件传递文件名的好地方。

我第一次尝试加载“./app.conf”,但当前目录不是模块的位置,所以它不可预测且容易出错。或者,我必须假设一些路径——相对的或绝对的。这是不灵活的,如果主机操作系统分布发生变化,可能会出现问题。我不想对路径进行硬编码(不过,如果没有更好的方法,/etc 中的某些内容可能是可以接受的)。

我也尝试过 PerlSetVar,但在请求时间之前该值不可用。虽然这是可行的,但这意味着我可能会在每个子(线程)初始化时至少从磁盘读取一次配置文件。我宁愿在服务器初始化时加载并拥有一个不可变的静态哈希,它是创建子时生成的环境的一部分。

我考虑使用 config.pl,但这意味着我要么有一个带有一个选项的 config.pl 来配置在哪里找到 app.conf 文件,要么我将选项本身移到 config.pl 并要求最终用户尊重 Perl设置选项时的语法。未来的用户将成为内部管理员,所以这并非不合理,但它比我想要的要复杂。

那么我错过了什么?有什么好的选择吗?

0 投票
1 回答
548 浏览

perl-module - 使用代理凭据监视 URL 的 Perl 脚本?

请帮助以下代码,这在我们的环境中不起作用。

输出 :

无法连接到 google.com:80(超时)

LWP::Protocol::http::Socket: connect: 在 C:/Perl/lib/LWP/Protocol/http.pm 第 51 行超时。

操作系统:Windows XP

问候, 高拉夫

0 投票
2 回答
694 浏览

perl - 在 Apache2 中解析不带引号的 cookie 的异常

我正在使用Apache2::Cookie(即带有 mod_perl 的 Apache2)来解析 cookie。

此代码已在生产环境中运行多年,没有任何问题。我刚刚了解到具有特定格式的 cookie 会导致抛出异常Expected token not present。有问题的 cookie 由客户端 JavaScript 生成:

Apache2::Cookie 似乎不喜欢逗号。

我可以用 捕获这个错误eval,但是 cookie 检索是在代码中的很多地方完成的(是的,它可能已经被分解了,但坦率地说,代码是如此简单,没有必要)。无论如何,它现在就在那里,我必须追踪并捕获我没有设置且不需要的这个 cookie 的异常。

有没有比重构几十个调用更简单的方法来摆脱这个异常Apache2::Cookie->fetch 通过重新定义Apache2::Cookie::fetch,或者通过设置一个全局标志libapreq以不吐出这个(我找不到任何东西),或者我错过了其他一些好主意。

0 投票
3 回答
2224 浏览

perl - 如何使用 ModPerl::Registry 抑制旧 CGI 脚本中的默认 mod_perl 错误页面

我在 Perl 中有一个 CGI 脚本,它自己生成 HTTP 错误页面。我通过ModPerl::Registry在 mod_perl 下运行它,使用以下 Apache2 配置:

一切都很好,除了一个小问题:当标头中打印的 HTTP 状态不同于 200(例如 404)时,Apache 会在我自己生成的响应中附加一个默认的 HTML 错误文档。

以下面的简单 CGI 脚本为例:

使用上面提到的 Apache 配置运行它会导致

请注意,按照“如何在 mod_perl 中抑制默认的 apache 错误文档? ”中的建议,在exit;上面的示例 CGI 脚本中替换为return Apache2::Const::OK;or并没有帮助——结果保持不变。return Apache2::Const::DONE;

我应该在我的 Apache 配置中修复什么,或者我应该在我的 CGI 脚本中添加什么来抑制 mod_perl / Apache 将错误页面附加到生成的响应中?

0 投票
1 回答
230 浏览

perl - 从 perl cgi 无法工作

我有 perl 脚本,它从 cgi 页面生成并成为一个独立运行的守护进程。如果从它正在使用的任何模块中调用了一个骰子,则脚本将被调用,尽管它已在 eval 块中进行了处理。但是,当我从命令提示符运行脚本时,一切都很好,并且正在处理错误。

注意:从命令行也脚本正在成为一个守护进程

0 投票
2 回答
443 浏览

perl - APR::UUID 模块生成的标识符的唯一性保证是什么

Data::UUID 的文档指出

UUID 的长度为 128 位,并且保证与 3400 CE 之前生成的所有其他 UUID/GUID 不同。

APR::UUID 的文档将生成的标识符描述为random

这是否意味着 APR::UUID 创建的 GUID 不能保证是唯一的?

0 投票
2 回答
3468 浏览

apache - 如果嵌套路径,动态内容的 Apache 位置指令会失败

我正在使用 Apache 2.2x。大部分内容是通过 mod_perl 生成的。因此,它是没有文件系统映射的动态内容。完美利用<位置>。

阿帕奇配置:

Module1 有效,此处显示以表明我的设置在其他方面有效。

模块 2 不起作用。Apache 说“文件不存在:/home/joe/www/htdocs/finance”。模块配置之间的唯一区别是 Module2 位置包含多个斜杠(我称之为嵌套路径)。

关于“文件不存在”错误:当然它不存在——它是一个位置,而不是文件或目录。那么为什么会这样呢?

我希望能够使用带有多个斜杠的路径,因为我有很多 mod_perl 模块,并且出于控制目的进行分类会很好。举一个简单的例子,robots.txt 可以简单地说:

Apache 文档明确指出 < Location > 指令不需要映射到文件系统,并且非常适合动态生成的内容。

我究竟做错了什么?有解决方法吗?(除了明显的“不要那样做”)。

谢谢。

0 投票
2 回答
713 浏览

perl - 我的 Perl 程序如何判断是否在 mod_perl 下运行?

我的 Perl 程序如何判断是否在 mod_perl 下运行?

我正在考虑全局变量或环境变量。

我只关心 mod_perl >= 2。

0 投票
1 回答
989 浏览

perl - 尝试在 modperl2 下使用 XML::Parser 时出错 - 无法加载模块

在生产中(在 AIX 5.3 上)的 modperl 设置下使用 XML::Parser 时遇到了问题。它在开发中工作正常,但在生产中失败并出现以下错误:

expat/expat-devel 库是/opt/freeware/lib使用一个包安装的(在开发和实时版本中相同),并且两者都显示相同的输出ldd Expat.so

我已经尝试在我们的 dotfiles 和我们的 mod_env 配置中设置 LIBPATH,但没有运气。我不希望有人知道确切的答案,但我已经没有什么可以尝试的想法了,所以我希望有一些建议可以尝试。

编辑:我还应该指出,使用 XML::Parser 的相同脚本在我们的实时服务器上与普通的 cgi-bin 脚本一样完美。

0 投票
1 回答
302 浏览

security - 在处理程序中清理 HTML::Mason 参数?

我正在使用HTML::Mason,经过最近的安全审核,发现我们的某些软件容易受到标头注入的影响。具体来说session_id,这与通过GETPOST请求传递的参数有关。

我试图handler()从自定义处理程序修改我的方法中的环境,但是Apache2::RequestRec已经创建了,所以它不会接受更改。

有没有一种好方法可以在处理程序级别清理所有输入到 HTML::Mason 中?