如何让 mod_perl 在更改时重新加载源文件?
我正在使用 mod_perl
进行 Web 开发。 我不想每次修改 Perl 模块时都重新启动 mod_perl
。
我遇到了一个建议使用 Apache::Reload 模块的解决方案,我从 CPAN 安装了该模块,相应地修改了 httpd.conf 并添加了 use Apache::重新加载到我的 Perl 模块,如文档中所述。
我尝试了“重新加载所有模块”方法,以及一种在触及特定模块的文件时重新加载该模块的方法,但这两种方法都不起作用。
请问是否有人知道任何其他 mod_perl
配置(或任何其他因素)可能会阻止此工作?
I am using mod_perl
for web development. I do not want to restart mod_perl
every time I modify a Perl module.
I came across one solution that suggested using the Apache::Reload
module and I installed this module from CPAN, modified httpd.conf
accordingly and added use Apache::Reload
to my Perl module, as stated in the documentation.
I tried the "reload all modules" method, and also one to reload a specific module when its file is touched, but both fail to work at all.
May I ask if anyone knows of any other mod_perl
configuration (or any other factor) that could be preventing this from working?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我使用 Perrin Harkins 通过 PerlMonks 提供的这个解决方案:
“将 MaxRequestsPerChild 设置为 1,然后在子级中加载任何可能更改的模块,而不是父级(显然仅适用于开发环境)。每个请求都会命中一个新的子服务器,它将重新加载所有可能更改的模块。”
来自“在正在运行的 Web 服务器中查看模块更改的更好方法” - http://www. perlmonks.org/bare/?node_id=794860
I use this solution, from Perrin Harkins via PerlMonks:
"Set MaxRequestsPerChild to 1, then load any potentially-changing modules in the child, not the parent (obviously only for development environments). Each request will hit a fresh child server, which will load all of your potentially-changing modules anew."
From "A better way to see module changes in a running web server" - http://www.perlmonks.org/bare/?node_id=794860
考虑直接使用 Plack 或通过具有 PSGI 驱动程序的框架之一来编写应用程序。 然后,当您进行调试时,请使用
plackup
工具,如下所示:plackup 文档提供了有关
.psgi
文件应如何显示的更多详细信息,并且您的框架的文档应该会有所帮助也。 这是使用 Catalyst::Engine::PSGI 的示例Consider writing your app using Plack, either directly or via one of the frameworks that have PSGI drivers. Then, when you're debugging, use the
plackup
tool like so:The plackup documentation has more details one how the
.psgi
file should look, and your framework's documentation should help too. Here's an example using Catalyst::Engine::PSGI