我正在使用mod_perl
进行网站开发。每次修改Perl模块时,我都不想重新启动mod_perl
。
我遇到了一个建议使用Apache::Reload
模块的解决方案,我从CPAN安装了此模块,相应地修改了httpd.conf
并将use Apache::Reload
添加到我的Perl模块中,如文档中所述。
我尝试了“重新加载所有模块”方法,还有一个方法是在触摸文件时重新加载特定模块,但两者都无法正常工作。
请问是否有人知道可能阻止其工作的任何其他mod_perl
配置(或任何其他因素)?
答案 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(@_) };