【问题标题】:Configuring python flask folder to WSGI daemon in apache在apache中将python flask文件夹配置为WSGI守护进程
【发布时间】:2018-10-16 21:59:11
【问题描述】:

我正在尝试开发 python flask 应用程序,并希望将应用程序配置为 apache 作为守护程序,因此我不需要在每次更改后重新启动 apache。现在的配置就像instructed here:

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 时,我可以看到该输出,因此 flask 工作,但守护程序配置不起作用(我仍然需要重新启动才能看到所做的任何更改)。在这里similar problem 似乎关键是名称匹配,而且确实如此。软件版本:Apache/2.4.6 (CentOS) PHP/5.4.16 mod_wsgi/3.4。

我们没有在 httpd.conf 中定义任何 virtual hosts,这可能是缺少的东西,因为它有效 in this case?谢谢你的帮助! ???

【问题讨论】:

    标签: python apache flask mod-wsgi


    【解决方案1】:

    对您的httpd.conf 文件的修改会有帮助吗?

    WSGIDaemonProcess api threads=5
    WSGIScriptAlias /rapo /var/www/cgi-bin/pycgi/koe.wsgi
    
    <Directory rapo>
        WSGIProcessGroup rapo
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
    

    【讨论】:

    • 谢谢,试过了,重新启动 apache 并通过浏览器访问我的应用程序。错误日志只给出错误“没有配置名为'rapo'的WSGI守护进程:/var/www/cgi-bin/pycgi/koe.wsgi”。 (也尝试将 'api' 替换为 'rapo' 和路径
    • 这里的说明,我已遵循:flask.pocoo.org/docs/0.12/deploying/mod_wsgi
    • 该示例应该使用WSGIProcessGroup api 而不是WSGIProcessGroup rapo,但结果与最初使用的相同。
    【解决方案2】:

    Python 与 PHP 不同,源代码更改不会在下一次请求时自动重新加载。在守护模式的情况下,你至少还需要触摸 WSGI 脚本文件。您可以在以下位置找到有关如何处理重新加载的详细信息:

    在文档的末尾,您将找到一种向您的应用程序添加代码的方法,以便无论更改什么代码文件都会自动重新加载源代码,但这只能用于开发而不是生产。

    如果进行开发,最好在命令行中使用mod_wsgi-express。当你这样做时,你可以使用--reload-on-changes 选项来启用任何更改的重新加载。见:

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 2016-10-14
      • 1970-01-01
      • 2017-01-13
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 2023-02-05
      相关资源
      最近更新 更多