问题标签 [mod-perl-registry]

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 回答
3403 浏览

perl - 如何在 mod_perl 中添加脚本特定的库路径?

我正在尝试将 CGI 脚本迁移到mod_perl使用ModPerl::Registry.

脚本使用与脚本位于同一目录中的模块,但由于mod_perl当前目录位于其他位置,因此不起作用。

我尝试使用FindBin添加到@INC,但FindBin看起来像这样:

这根本没有用。

那么,有没有办法让脚本找出它在哪里,并将该目录添加到@INC?理想情况下,使用同一 Apache 服务器的所有其他脚本不会将该目录添加到它们的@INC.

0 投票
1 回答
39 浏览

winapi - 转储 mod_perlified 变量——本地命名空间是什么?

我有一个 mod_perl 脚本:

它死了undef at C:/www/test.pl line 8.

我期待"ugly" at C:/www/test.pl line 8.

如果相反我

...重新启动服务以清除任何缓存的变量后,face甚至没有列出。

我可以发誓这个代码在我上次使用它时工作正常......我die围绕这种命名局部变量的方式编写了一个完整的钩子,以便我可以获取某些局部变量来转储调试信息。

什么是本地命名空间?

0 投票
2 回答
485 浏览

perl - 使用 Devel::Cover 和 ModPerl::Registry 不覆盖运行时

当我运行Devel::CoverModPerl::Registry,除了BEGIN块之外,我没有得到任何覆盖信息。当我Devel::Cover从命令行或作为 CGI 运行相同的脚本时,一切正常(显然)。

如何让Devel::Cover“看到”我的代码在运行时执行?

这是Devel::Cover我的相关内容httpd.conf

这是startup.pl

(如您所见,我为Devel::Coversince startup.plis running by 做了一个猴子补丁root,但工作进程在不同的用户下运行,否则他们无法读取由 . 创建的目录startup.pl。如果您知道更好的解决方案,请记下.)

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 回答
781 浏览

multithreading - 使用 perl、wsdl 和多线程的 Web 服务不起作用

使用 perl、wsdl 和多线程的 Web 服务不起作用:

  1. 使用线程执行命令行:有效
  2. 带有线程的肥皂客户端调用:不起作用
  3. 没有线程的肥皂客户端调用:有效

在这里,我尝试使用线程更新数千个筛子文件,但如果我使用线程,它不起作用。我正在尝试使用 perl 快速制作 web 服务,目前它是用 php 编写的,但是使用 web 服务的线程不起作用任何帮助都会有所帮助。

当我从肥皂客户端(soap_client.pl)调用 Web 服务时,它返回以下错误。

安装的 perl 模块:

阿帕奇模块:

阿帕奇虚拟主机:

sievefilter_thread.pl

筛分.pm

筛子.wsdl

肥皂客户端.pl

0 投票
2 回答
674 浏览

perl - ModPerl::Registry - 无法运行 CGI perl 脚本

我在 Apache 2.4.7 和 Ubuntu 14.04 下。

我正在尝试在下面运行以下基本 perl 脚本(/home/fred/workspace/portfolio/cgi/fred.pl),ModPerl::Registry但它不会执行(浏览器将其视为要下载的文件,而不是 perl 脚本)

这是我的虚拟主机配置:

我以前跑过

这实际上启用了 cgid(我的 apache 是线程的),很好。

当我输入 127.0.0.1/fred.pl 时,没有执行(fred.pl 拥有权利 777)

任何想法 ?

谢谢

0 投票
1 回答
302 浏览

linux - 带有 mod_perl 的 Proc::Daemon 不会写入 STDOUT 或 STDERR

因此,我在 mod_perl 脚本中使用了 Proc::Daemon:

$bindir、$ddir 是可执行文件/日志文件位置,$jid 是每个进程的唯一标识符(以避免多个进程打开同一个文件)。$cmd 加载了任意 perl 脚本和参数。

将 Apache 与 cgi-script(无 mod_perl)一起使用时,上述工作正常。在“$cmd”进程中,打印STDERR日志并将其打印到上面定义的日志文件中。

当我在 Ubuntu Linux 14.04 LTS 上使用 Apache2 使用 mod_perl2 运行上述程序时,使用 PID 写入 pid 文件并创建上述日志文件,但没有将任何内容写入日志文件。我可以在 $cmd 中打开新的文件描述符并写入它们,但是在 mod_perl 下,它不会将输出发送到 child_STDOUT 和 child_STDERR 文件。

我想我错过了一些非常明显的东西。有没有其他人以前见过这个,或者有任何建议让它在 mod_perl 中工作。

附加信息 在 Apache 中使用 mpm_prefork 模块

相关的 Apache 配置

0 投票
1 回答
161 浏览

apache - 在 apache 2.4 下将 lxr perl 模块作为脚本运行

在过去的几天里,我一直试图让它正确,但不能。我不是 LAMP 人。

我从默认的 Ubuntu 存储库安装了 Apache 2。以下是 /etc/apache2 目录的内容:

以下是启用站点的目录的内容:

这是我添加到 000-default.conf 的内容:

这是此链接上 perl 模块的内容。

我的问题是:当我访问链接http://localhost/lxr/source时,我将它作为文本文件获取,它没有作为脚本执行。

我怎样才能解决这个问题?

谢谢!

0 投票
1 回答
25 浏览

mod-perl2 - 使用 ModPerl::Registry 运行的 CGI 脚本不会在 html 页面上打印结果,只需下载即可

这是我的沙箱https://github.com/pavelsr/mod_perl_sandbox

当我做docker-compose up然后去http://localhost:3000/env.pl结果 html 被下载,没有服务。

在 CGI 模式下(-DMODPERL在 docker-compose 中删除)一切正常。

好像 ModPerl::Registry 没有处理Content-type: text/html

我需要做什么修复httpd.conf

添加PerlOptions +ParseHeaders不会解决问题