如何更改mod_perl重新加载源文件?

时间:2009-04-25 11:56:36

标签: perl apache mod-perl

我正在使用mod_perl进行网站开发。每次修改Perl模块时,我都不想重新启动mod_perl

我遇到了一个建议使用Apache::Reload模块的解决方案,我从CPAN安装了此模块,相应地修改了httpd.conf并将use Apache::Reload添加到我的Perl模块中,如文档中所述。

我尝试了“重新加载所有模块”方法,还有一个方法是在触摸文件时重新加载特定模块,但两者都无法正常工作。

请问是否有人知道可能阻止其工作的任何其他mod_perl配置(或任何其他因素)?

2 个答案:

答案 0 :(得分:0)

我使用这个解决方案,来自Perrin Harkins通过PerlMonks:

“将MaxRequestsPerChild设置为1,然后加载中的任何可能更改的模块,而不是父项(显然仅适用于开发环境)。每个请求都会遇到一个新的子服务器,它将加载所有可能改变的模块都会重新出现。“

从“在正在运行的网络服务器中查看模块更改的更好方法” - http://www.perlmonks.org/bare/?node_id=794860

答案 1 :(得分:-1)

考虑直接或通过其中一个具有PSGI驱动程序的框架使用Plack编写应用程序。然后,在进行调试时,请使用plackup工具,如下所示:

$ plackup --server Apache2 -r --app /path/to/your_app.psgi

plackup文档提供了更多详细信息,.psgi文件应该如何显示,框架的文档也应该有所帮助。这是使用Catalyst :: Engine :: PSGI

的示例
# app.psgi
use strict;
use MyApp;

MyApp->setup_engine('PSGI');
my $app = sub { MyApp->run(@_) };