代码之家  ›  专栏  ›  技术社区  ›  aidan

如何让mod euperl识别对应用程序的更改?

  •  2
  • aidan  · 技术社区  · 15 年前

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

    当我在开发时,我的更改会立即反映在我正在开发的网页上。我认为mod euperl很聪明,在文件更改时正在重新加载文件。

    但是现在另一个开发人员正在系统的不同部分工作,他们的更改并没有被mod_Perl接受。他必须重新启动Apache才能看到他的更改。

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

    谢谢。

    编辑:我正在使用vi直接在dev服务器上编辑文件,另一个开发人员已经通过samba安装了dev目录,并且正在Windows中编辑他们的文件。这似乎是防止mod euperl获取更改的不同之处。

    3 回复  |  直到 13 年前
        1
  •  8
  •   Sinan Ünür    15 年前

    我刚刚读了一篇很好的博客文章,总结了实现这一目标的所有可能方法: How not to restart mod_perl servers 作者:乔纳森·斯沃茨

        2
  •  2
  •   ysth    15 年前

    另一个开发者到底在改变什么?

    要在模块发生更改时重新加载,您将使用 Apache2::Reload . (虽然见 Performance Issues 在考虑将其用于生产之前。)

    即使没有这个,mod_Perl也会在CGI脚本发生变化时重新加载它们;我不知道其他开发人员在谈论CGI脚本时会如何关闭它。

        3
  •  0
  •   Stefan    13 年前

    既然它只是为了开发,那么就杀掉所有子进程,让父Apache进程重新出现怎么样?

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

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