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

发布于 2024-07-18 10:05:06 字数 342 浏览 8 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ぺ禁宫浮华殁 2024-07-25 10:05:06

我使用 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

围归者 2024-07-25 10:05:06

考虑直接使用 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(@_) };

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:

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

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

# app.psgi
use strict;
use MyApp;

MyApp->setup_engine('PSGI');
my $app = sub { MyApp->run(@_) };
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文