2

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

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

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

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

4

2 回答 2

0

我使用 Perrin Harkins 通过 PerlMonks 提供的这个解决方案:

“将 MaxRequestsPerChild 设置为 1,然后在child中加载任何可能发生变化的模块,而不是在 parent 中加载(显然仅适用于开发环境)。每个请求都会到达一个新的 child 服务器,这将重新加载所有可能发生变化的模块。”

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

于 2010-09-24T12:46:59.190 回答
-1

考虑使用 Plack 直接或通过具有 PSGI 驱动程序的框架之一编写您的应用程序。然后,在调试时,使用如下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(@_) };
于 2009-12-18T10:40:31.823 回答