如何让mod_perl在更改时重新加载源文件?
问题描述:
我正在用mod _
perl开发一个应用程序,并且每次更改代码时重新启动服务器都是一个巨大的拖动。我想仍然使用mod _
perl进行开发,因为这是我计划用于实时服务器的。我没有看到关于如何做到这一点的文档中的任何内容。如何让mod_perl在更改时重新加载源文件?
想法?
答
我认为Apache2 :: Reload会在某种程度上实现您要找的东西。但是,请记住在您准备将应用投入生产后删除所有此实现。
监视器在%INC所有模块
处监视并请求的处理开始重新放入%INC的所有模块,只需添加以下配置到你的httpd.conf:
PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
当使用连接过滤器和协议模块时,应在预连接阶段调用Apache2 :: Reload:
PerlPreConnectionHandler Apache2::Reload
个注册模块隐含
重加载已经与Apache2的::刷新注册模块,添加以下到httpd.conf:
PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload
PerlSetVar ReloadAll Off
# ReloadAll defaults to On
那么任何模块与行:
use Apache2::Reload;
当它们改变时将被重新加载。
查询信息this documentation page。希望这可以帮助。
答
我用这个解决方案,从佩兰哈金斯通过PerlMonks:
设置MaxRequestsPerChild为1,然后加载任何可能改变模块的孩子,不是父(显然仅用于开发环境)。每个请求都会碰到新的子服务器,这会重新加载所有潜在更改的模块。
从 “A better way to see module changes in a running web server”