python - 在apache中将python flask文件夹配置为WSGI守护进程
问题描述
我正在尝试开发 python 烧瓶应用程序,并希望将应用程序配置为 apache 作为守护程序,因此我不需要在每次更改后重新启动 apache。现在的配置如下所示:
httpd.conf
WSGIDaemonProcess /rapo threads=5 display-name=%{GROUP}
WSGIProcessGroup /rapo
WSGIScriptAlias /rapo /var/www/cgi-bin/pycgi/koe.wsgi
koe.wsgi 只包含
import sys
sys.path.insert(0, "/var/www/cgi-bin/pycgi")
from koe2 import app as application
在 koe2.py 中有
@app.route('/rapo')
def hello_world():
return 'Hello, World!'
当我转到网络服务器的 /rapo/hello -path 时,我可以看到该输出,因此烧瓶可以工作,但守护程序配置不起作用(我仍然需要重新启动才能看到所做的任何更改)。这里有类似的问题,关键是名称匹配,而且确实如此。软件版本:Apache/2.4.6 (CentOS) PHP/5.4.16 mod_wsgi/3.4。
解决方案
Python 与 PHP 不同,源代码更改不会在下一次请求时自动重新加载。在守护模式的情况下,你至少还需要触摸 WSGI 脚本文件。您可以在以下位置找到有关如何处理重新加载的详细信息:
在文档的末尾,您将找到一种向应用程序添加代码的方法,以便无论更改什么代码文件都会自动重新加载源代码,但这应该只用于开发而不是生产。
如果进行开发,最好mod_wsgi-express
从命令行使用。当您这样做时,您可以使用该--reload-on-changes
选项来启用任何更改的重新加载。看:
推荐阅读
- ubuntu - Minikube 是否在 Ubuntu 19.10 虚拟机中运行?
- typescript - 可观察的嵌套回调
- r - 我可以将 xts 对象写入 excel,包括行名吗
- pandas - 按索引替换现有值
- javascript - 为什么 data-amp-bind-href 或 [href] 在 amp-bind 组件中不起作用?
- scripting - 通过脚本在 Spark AR 中使值动态化
- .net - 关于将应用程序从 .Net Framework 移植到 .Net core 的问题
- java - Intellij 断点报告方法抛出 'java.lang.ClassNotFoundException' 异常,即使变量存在
- jenkins - Jenkins中并行管道中的顺序阶段
- c# - 如何给每个按钮单独的值