首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在生产web服务器上测试Apache/mod_perl下的web Perl模块?

如何在生产web服务器上测试Apache/mod_perl下的web Perl模块?
EN

Stack Overflow用户
提问于 2010-03-19 03:01:40
回答 1查看 202关注 0票数 2

我们有一个设置,在提升到完全生产之前,大多数代码都是以BETA模式部署的--这意味着它在完整的生产环境中运行(使用生产数据库--通常是生产数据;以及生产web服务器)。我们称之为阶段测试。

主要要求之一是BETA代码升级到产品必须是一个简单的"cp“命令,从beta到产品目录-没有代码/文件名更改。

对于非web Perl代码,实现无缝BETA测试是可行的(详见此处):

  • Perl程序生活在生产根(/usr/code/scripts)下的标准位置,而生产perl模块则生活在同一个根(/usr/code/lib/perl)下。
  • 除了BETA根(/usr/code/beta/)之外,beta代码具有100%相同的代码路径。
  • 一个特殊的模块根据脚本是从/usr/code/scripts调用还是从/usr/code/test/scripts调用来操作任何脚本的beta库,以包括beta脚本的beta库。

这个设置工作正常,直到我们需要测试我们的EmbPerl代码(设置是EmbPerl和Apache/mod_ Perl )。

挂起的情况如下:如果生产Perl模块和BETA Perl模块都有相同的名称(例如,/usr/code/lib/perl/MyLib1.pm /usr/code/beta/lib/perl/MyLib1.pm**),和,那么mod_perl将只能将其中一个模块加载到内存**)--我们不可能知道某个特定的网页会因为并发问题而影响当前加载模块的哪个版本。

撇开明显的非编程解决方案(获得一个血腥的BETA web服务器)相比,出于政治/组织原因,我们是否可以在Perl或mod_perl中以某种方式解决这个问题?

我尝试了各种方法来卸载%INC列出的Perl模块,但问题仍然是,另一个用户可能会在正确(或者说是错误的)时刻加载一个beta页面,并加载将用于我的生产页面的beta模块。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-19 03:26:22

使用mod_perl 2.0,您可以使用PerlOptions +亲本为每个vhost创建一个单独的Perl解释器池。当然,它会花费你额外的内存,但它会起作用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2474734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档