【发布时间】: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