在没有 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 表单提交无需重新加载页面

是否可以在不重新加载页面的情况下更新 django 上下文字典?

在不重新加载页面的情况下更新 Django 中的表单值?

Django 模板继承:如何阻止基础模板重新加载?

如何在打开自动重载的情况下在 VSCode 中调试 Django

Django - 如何在不刷新页面的情况下保持在同一页面上?