2

我在我们的开发服务器上运行 apache2 / mod_perl2 组合。

当我进行开发时,我的更改会立即反映在我正在处理的网页中。我认为 mod_perl 很聪明,并且在更改文件时会重新加载文件。

但是现在另一位开发人员正在开发系统的不同部分,并且 mod_perl 没有接收到他们的更改。他必须重新启动 apache 才能看到他的更改。

有没有办法在我们的开发服务器上禁用缓存,或者让 mod_perl 获取他的更改?

谢谢。

编辑:我正在使用 VI 直接在开发服务器上编辑文件,其他开发人员已通过 samba 安装了他们的开发目录,并正在 Windows 中编辑他们的文件。这似乎是阻止 mod_perl 获取更改的差异。

4

3 回答 3

8

我刚刚阅读了一篇不错的博客文章,其中总结了实现这一目标的所有可能方法:Jonathan Swartz如何不重新启动 mod_perl 服务器

于 2009-09-23T16:45:41.220 回答
2

其他开发人员到底在改变什么?

要在模块发生更改时重新加载模块,您可以使用Apache2::Reload。(尽管在考虑在生产中使用它之前,请参阅性能问题。)

即使没有这个,mod_perl 也会在 cgi 脚本改变时重新加载它们;如果您在谈论 cgi 脚本,我不知道其他开发人员可能会以任何方式关闭它。

于 2009-09-23T16:42:26.177 回答
0

既然它只是为了开发,那么杀死所有子进程并让父apache进程重生怎么样?

kill -9 $(ps axf | grep httpd | egrep -e ' S ' | cut -b1-5 | paste -s -d ' ')
  • 上面的命令适用于我环境中的我的盒子,你的里程会有所不同。

无论如何,这不是一个优雅的解决方案,但是嘿,它比完全重启 apache 更快。

于 2011-11-15T21:42:55.640 回答