【问题标题】:Reload django wsgi scripts without root在没有 root 的情况下重新加载 django wsgi 脚本
【发布时间】:2010-11-07 10:35:51
【问题描述】:

我使用嵌入式 wsgi 在 apache 上安装了 django。我的机器上没有root。

当我部署新的源代码时,如何告诉 apache 重新加载 python 实例?

我尝试删除所有 .pyc 文件,但它仍在运行旧代码。

【问题讨论】:

    标签: django django-wsgi


    【解决方案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 守护程序模式。绝对不像你建议的那样被推荐。
    猜你喜欢
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    相关资源
    最近更新 更多