Devel::Cover在Windows的Perl 5.10上的mod_perl2下能工作吗?
mod_perl2和perl 5.10两个都很好地播放,但是我似乎找不到有关另外,Devel :: Cover PPD似乎无法从Activestate,Bribes,Uwinnipeg或Trouchelle中使用Perl 5.10成功制造? 解决方案 似乎更近的最新版本现在应该在Windows上使用可从主要存储库获得Perl 5.10. 但实际上,当您使用它时,Apache在加载后就会关闭,将其写入错误日志: Unfortunately, Devel::Cover does not yet work with threads. I have done some work in this area, but there is still more to be done.
8 2023-12-07
编程技术问答社区
如何使用ModPerl::Registry在传统的CGI脚本中抑制默认的mod_perl错误页面。
我在Perl中有一个CGI脚本,该脚本本身会生成HTTP错误页面.我正在通过mod_perl通过 modperl :: registry ,使用以下apache2配置: Alias /perl "/var/www/perl" SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders Options Indexes FollowSymlinks +ExecCGI AllowOverride None Order allow,deny Allow from all 一切都很好,除了一个小问题:当标题中打印的HTTP状态与200(例如404)不同时,Apache将默认的HTML错误文档附加到我自己的生成的响应中. 以以下简单的C
22 2023-06-30
编程技术问答社区
安装mod_perl2时出错
我尝试使用以下配置安装mod_perl2: OS: Centos版本5.5(final) uname -a结果: x86_64 x86_64 x86_64 x86_64 x86_64 gnu/linux perl版本: v5.8.8为x86_64-linux-thread-multi apache版本: apache/2.2.3 我有从 cpan网站 当我尝试运行" perl makefile.pl mp_apxs =/usr/locar/local/httpd/bin/apxs"时,它给出以下输出: subroutine set_version在./makefile.pl行137. [信息]生成脚本T/Test [info]生成脚本./t/cgi-bin/cookies.pl [info]生成脚本./t/cgi-bin/next_available_port.pl 检查CWD ...好的 检查文件:: Spec ...好的 [信息]生成脚本T/Test
24 2023-05-25
编程技术问答社区
如何在mod_perl中抑制默认的apache错误文档?
我正在开发一个静止的API,我写了一个Mod_perl2处理程序,该处理程序照顾了请求. 我的处理程序通过设置$r->status($http_code)和return $http_code; 处理错误代码 一切都很好,除了一个小问题:当我的http_code与200(例如404)不同时,Apache将默认的HTML错误文档附加到我自己的生成的响应中. 例如: GET /foo 给出: $VAR1 = bless( { 'status' => 404, 'data' => {}, 'message' => 'Resource not found for foo' }, 'My::Response' );
22 2023-05-24
编程技术问答社区
使用Devel::Cover和ModPerl::Registry的运行时间没有覆盖率
当我使用ModPerl::Registry>运行Devel::Cover时,除了BEGIN块外,我没有得到覆盖范围信息.当我使用命令行或CGI运行相同的脚本时,一切正常(显然). 如何使Devel::Cover"查看"我的代码在运行时执行? 这是Devel::Cover我的httpd.conf中的相关内容: MaxClients 1 PerlSetEnv DEVEL_COVER_OPTIONS -db,/tmp/cover_db,-silent,1 PerlRequire /var/www/project/startup.pl 这是startup.pl: #!/usr/bin/perl use strict; use warnings; use Apache2::Directive (); BEGIN { # Devel::Cover database must be writable by worker processes my $con
14 2023-05-24
编程技术问答社区
在mod_perl2下分叉是个坏主意吗?
在mod_perl2下,是否有对叉子的反调查?一个人应该使用另一种方法在mod_perl2下运行背景过程? 解决方案 我通常使用清理处理程序来运行HTTP请求完成后需要发生的任何事情: $r->push_handlers( PerlCleanupHandler => sub { print "I'm doing stuff!" } ); 如果您真的需要做叉子,则不应该以常规方式进行操作,因为您的分叉过程会干扰Apache需要的各种资源,例如文件描述符和套接字,并且很难正确处理所有这些资源.相反,请尝试 apache2 :: subprocess . 其他解决方案 您可以考虑运行
14 2023-05-24
编程技术问答社区
IPC::Open3在Apache下运行失败
我有一个使用IPC :: Open3(或IPC :: Open2,都显示此问题)的模块来调用外部二进制(在这种情况下为Bogofilter),并通过子输入FileHandle给它提供一些输入,然后读取子输出手柄的结果.在大多数环境中运行时,该代码正常运行.但是,此模块的主要用途是在Apache 2.2.6下运行的Web服务中.在那个环境下,我得到错误: 不能fdopen stdout:无效参数 这仅在代码在Apache下运行时才发生.以前,该代码构建了一个可怕的复杂命令,其中包括此处的输入文档,并用背键进行运行.这起作用了,但是很慢,很容易以独特而令人困惑的方式破裂.我不得不恢复旧版本,但我无法破解. 解决方案 可能是因为mod_perl 2关闭了stdout?我刚刚发现了这一点并发布了有关: http://marc.info/?l=apache-modperl&m=126296015910250&w=2 我认为这是一个令人讨厌的错误,但到目前为止,似乎没人
6 2023-05-24
编程技术问答社区
PSGI。它是什么,有什么大惊小怪的?
我一直在尝试确定我的Web项目是否是使用PSGI实施的候选人,但我真的不知道它在此阶段对我的应用程序有什么好处. 我并不真正理解所有大惊小怪.对我来说,PSGI似乎是一个框架,它在不同的Apache模块之间提供了一个常见的接口,使您可以在它们之间移动应用程序.例如,可以轻松地将应用程序从mod_perl上运行到fastcgi,并为在这两个选项上运行的应用程序提供支持. 是对的,还是我错过了什么? 作为我和团队,我不仅是开发应用程序的一部分,而且几乎可以进行维护和设置服务器的设置,我看不到我们能够在fastcgi,cgi和mod_perl上运行的价值,我们只能使用mod_perl. 我是否误解了PSGI功能,还是不适合我的项目? 解决方案 忘记了Apache位.这是一种编写您的应用程序的方式,以便选择WebServer的选择变得不那么重要.在$ WOOK中,我们在升级到Apache2后找到我们的应用程序很高的CPU负载后,我们切换到Plack/PSGI -
2 2023-05-24
编程技术问答社区
如果我使用Apache::DBI'的connect_cached(),我应该断开连接吗?
我的基于mod_perl2的Intranet应用程序使用DBI->connect_cached(),DBI->connect_cached() Apache::DBI的版本相同.它通常运行良好,但是就在最近,我们开始在测试服务器上遇到一个问题(只有两个用户连接),我们的应用程序有时会但并非总是会在尝试重新加载fatal的页面时死亡:抱歉,尽管我查看PGADMIN3中的统计数据,但已经连接到我们的Postgres 9.0后端已连接到我们的Postgres 9.0后端. 后端与我们的开发和生产后端分开,但它们都配置为max_connections = 100.同样,HTTPD服务都是分开的,但配置了 StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 99 MaxClients 99 MaxRequestsPerChild 4000 .... PerlModu
14 2023-03-28
编程技术问答社区
为什么第二个请求没有完成输出?
浏览器等待来自服务器和日志记录的某些数据只在服务器重新启动后完成.我也可以看到孩子吃了叉子. $ah{ $r->hostname } ||= HTML::Mason::ApacheHandler->new ( .. ) sub handle{ eval{ $ah{ $r->hostname }->handle_request($r); }; if( $@ ) { $r->filename( $r->document_root . '/errors/500.html' ); $ah{ $r->hostname }->handle_request($r); }; $r->log_error( 'ERROR' ); } } 我做错了什么,所以他们没有完成? upd 我只发现了一个关于相同问题的一个注释: http://sourceforge.net/p/Mason/mailman/message/14999444/但没有线索.
38 2022-12-20
编程技术问答社区
获取http POST请求的正文,使用mod-perl 2
我正在编写一个快速脚本来处理提交的文件,并将该内容返回给用户. 我的测试代码如下所示: #!/path/to/bin/perl use strict; use warnings; use utf8; use Apache2::RequestRec; use Apache2::RequestIO; my ( $xmlin, $accepts ) = (q{}, q{}); my $format = 'json'; # read the posted content while ( Apache2::RequestIO::read($xmlin, 1024) ) {}; { no warnings; $accepts = $Apache2::RequestRec::headers_in{'Accepts'}; } if ($accepts) { for ($accepts) { /application\/xml/i && do {
128 2022-08-19
编程技术问答社区
在Apache httpd | 2.4.2上安装mod_perl | 2.0.7
我在尝试使用 perl 安装 apache 时非常恼火.我正在按照 mod_perl 站点上的说明进行操作:http://perl.apache.org/docs/2.0/user/install/install.html 我得到了它要求我运行此命令的部分,但我收到一个错误: $ perl Makefile.PL MP_APXS=/usr/local/httpd/prefork/bin/apxs Reading Makefile.PL args from @ARGV MP_APXS = /usr/local/httpd/prefork/bin/apxs no conflicting prior mod_perl version found - good. Configuring Apache/2.4.2 mod_perl/2.0.7 Perl/v5.12.3 [ error] Can't find apr include/ directory, [ error] use
1202 2022-07-19
编程技术问答社区