在没有 root 的情况下重新加载 django wsgi 脚本
Posted
技术标签:
【中文标题】在没有 root 的情况下重新加载 django wsgi 脚本【英文标题】:Reload django wsgi scripts without root 【发布时间】:2010-11-07 10:35:51 【问题描述】:我使用嵌入式 wsgi 在 apache 上安装了 django。我的机器上没有root。
当我部署新的源代码时,如何告诉 apache 重新加载 python 实例?
我尝试删除所有 .pyc 文件,但它仍在运行旧代码。
【问题讨论】:
【参考方案1】:如果您使用 apache 在守护程序模式下运行 mod_wsgi,您可能不必重新启动 apache 以使其重新加载。
我只是触摸我的 wsgi 文件(unix:触摸更新文件的“保存日期”),apache 在下次访问/web-hit 时重新加载它。
见http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide
...只要您可以更改 WSGI 脚本上的时间戳。
【讨论】:
"touch filename.wsgi" 是正确的方法,不需要root或重新启动apache。由于我通常只想在签出新代码后立即执行此操作,因此我设置了一个别名以获取最新代码并同时触摸 wsgi,例如: alias upcrest='cd /home/crest/sites/projects/ourcrestmont ; svn 起来;触摸/home/crest/our/ourcrestmont.wsgi' 有安静的几个catch,见code.google.com/p/modwsgi/wiki/…【参考方案2】:http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode
这篇关于使用 mod_wsgi 重新加载源代码的文章介绍了如何重新加载源代码,甚至如何创建监控脚本以在您进行源更改时自动重新加载守护程序。用mod_wsgi搭建开发环境真的很不错。
【讨论】:
该链接似乎推荐了MaxRequestsPerChild 1
,这会扼杀我的表现。每当我进行推送时,我都在寻找一种重新加载它的方法。
您不必使用它...查看文章中有关守护程序模式和代码更改监控的接下来三个部分。
守护程序模式就是答案。 apache 配置中有两行,它不需要性能。谢谢
该文档实际上说 MaxRequestsPerChild '不建议使用此方法'。因此,尽管它说明您可以做到,但您确实应该使用 mod_wsgi 守护程序模式。绝对不像你建议的那样被推荐。以上是关于在没有 root 的情况下重新加载 django wsgi 脚本的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在不重新加载页面的情况下更新 django 上下文字典?