【问题标题】:How to avoid restarting apache server for every change made in a python file?如何避免为 python 文件中的每个更改重新启动 apache 服务器?
【发布时间】:2017-05-02 13:08:41
【问题描述】:

刚开始学习 python 烧瓶框架,经过几个教程后,我发现对于我在 (init.py) 文件或任何 python 文件中所做的每一次更改,我们都需要重新启动服务器提交的更改。好吧,例如,如果用户通过带有支付页面(不一定是支付网关)的服务器(单个服务器)上的一个页面,我不明白,如果需要重新启动服务器以进行后端提交的任何更改,会发生什么情况,有什么办法可以解决这个问题,对不起,如果我的问题看起来不合适,我只是一个新手。

【问题讨论】:

  • 当您将代码部署到生产环境时,有一个预定义的发布过程来部署您的新代码。部署成功后,重新启动 apache。您不会对生产代码进行更改。对于本地测试,您不需要 apache。只需运行 Flask/Django 的开发 wsgi 服务器,您的更改将在不重新启动服务器的情况下反映出来
  • 谢谢@MoinuddinQuadri 实际上我所经历的教程是直接在生产服务器上实施的,而不是先在本地测试然后部署在生产服务器上,所以我有点困惑。是的,现在我得到了澄清,谢谢!
  • 您不必重新启动 Apache。它只是 Flask 服务器应用程序的反向代理。唯一需要处理更改代码的是 Web 应用服务器。似乎有多种方法可以在代码更改时重新启动该方法,甚至是自动重启,例如参见stackoverflow.com/questions/16344756/…

标签: python flask


【解决方案1】:

有关如何在 Apache/mod_wsgi 下处理代码重新加载的详细信息,请阅读:

如果您使用的是守护程序模式(无论如何都应该使用),则无需重新启动整个 Apache Web 服务器,只需触摸 WSGI 脚本文件即可。

您还可以添加一个代码更改监视器,以检测更改并自动重新启动进程,但如果您正在进行开发并将 Apache/mod_wsgi 用于生产,您最好使用 mod_wsgi-express 进行开发。

mod_wsgi-express 包允许您轻松地从命令行在非特权端口上启动 Apache/mod_wsgi,而无需您自己进行任何 Apache 配置。然后它提供的选项之一是--reload-on-changes,以便在您进行更改时自动为您重新加载代码。

有关 mod_wsgi-express 的详细信息,请参阅 PyPi 文档:

【讨论】:

    猜你喜欢
    • 2014-07-03
    • 2017-06-30
    • 1970-01-01
    • 2019-05-07
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    相关资源
    最近更新 更多