【问题标题】:Flask application with mod_wsgi not reloading when I touch wsgi script当我触摸 wsgi 脚本时,带有 mod_wsgi 的烧瓶应用程序不会重新加载
【发布时间】:2015-03-08 10:42:23
【问题描述】:

我正在使用 mod_wsgi 运行带有 apache 的烧瓶应用程序。在对 python 代码进行更改后,我无法重新加载应用程序,因此我通读了mod_wsgi wiki 重新加载源代码。我运行脚本以确认我在守护程序模式下运行,并且我的 .conf VirtualHost 设置如下:

<VirtualHost *:80>
    ServerAdmin admin@succor.co
    ServerName dev.succor.co
    DocumentRoot /var/www/study_buddy_dev/study_buddy

    WSGIScriptAlias / /var/www/study_buddy_dev/study_buddy/app.wsgi

    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel info
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory /var/www/study_buddy_dev/study_buddy/>
        AuthType Basic
        AuthName "Authentication Required"
        AuthUserFile "/etc/htpasswd/.htpasswd"
        Require valid-user

        WSGIScriptReloading On
        Order deny,allow
        Allow from all
    </Directory>

    WSGIDaemonProcess succor.dev processes=2 threads=15 display-name=%{GROUP}
    WSGIProcessGroup succor.dev
</VirtualHost>

但是当我运行~$ sudo touch app.wsgi 时,我的应用程序没有任何变化,我完全不知道为什么。谁能解释一下我在这里做错了什么?

【问题讨论】:

  • 当您发出touch 时不会发生重新加载,它会在收到请求后发生。您是否尝试在触摸脚本后发送请求?
  • 我尝试在浏览器中访问该应用程序,但在我更新代码之前没有任何变化...该浏览器访问算作请求吗?
  • 我猜这取决于您对应用程序所做的更改。如果您重新启动 Apache,您会发现有什么不同吗?
  • 我在重新启动 Apache 时看不到任何变化。我对 Python 代码和一些 html 代码都进行了更改,但都没有传播。
  • 那么显然问题出在其他地方,对吧?重新启动 Apache 会杀死并重新启动所有进程。如果这没有为您提供更新的应用程序,那么在我看来,您的配置指向您的应用程序的过时版本。

标签: python apache flask mod-wsgi


【解决方案1】:

我们已经在上面的cmets中解决了这个问题,但是为了其他人的利益,这里是这个问题的解决方案:

我的猜测是 Apache 运行的 Python 文件不是您正在编辑的 Python 文件,您可能安装了两组文件。但这只是一种猜测,可以解释您所看到的行为,

【讨论】:

    猜你喜欢
    • 2018-07-08
    • 1970-01-01
    • 2015-07-04
    • 2020-10-26
    • 2013-08-07
    • 2012-08-03
    • 2014-11-22
    • 2016-02-03
    • 2018-10-06
    相关资源
    最近更新 更多