在apache上部署flask应用程序工厂

时间:2017-08-17 06:04:47

标签: python apache flask mod-wsgi

我没有运气好运。

我的run.py文件工作正常,如下所示:

from dpc import create_app

if __name__ == '__main__':
    app = create_app("config.py")

    app.run("0.0.0.0",debug=True,port=666,threaded=True)

我在__init__.py的应用工厂看起来像这样:

def create_app(config_filename):
    app = CustomFlask(__name__)
    from dpc import mongo_models
    app.config.from_pyfile(config_filename)
    app.register_blueprint(retrieve, url_prefix="/retrieve")
    return app

我的wsgi文件如下所示:

import sys
import os

sys.path.insert(0, 'C:/dpc')

from dpc import create_app
app = create_app("config.py")

我的httpd.conf文件包含:

<VirtualHost *:666>
    ServerName DPC

    WSGIScriptAlias / C:/dpc/dpc/dpc.wsgi

    <Directory C:\dpc >
        Options All
        AllowOverride None
        Require all granted
    </Directory>

</VirtualHost>

我有一个非应用程序工厂烧瓶应用程序在Apache上正常运行并且欢乐多年,但是这个没有给我任何错误并且什么也没有返回。我一直在尝试各种更改并在过去几个小时内寻找解决方案无济于事。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您无法在以下位置使用配置文件的相对路径名:

app = create_app("config.py")

它必须是一条绝对的道路。

读:

如果您回复空响应或挂起,请尝试设置:

WSGIApplicationGroup %{GLOBAL}

读:

WSGI脚本文件中的WSGI应用程序入口点也应设置为:

application = create_app("c:/dpc/dpc/config.py")

换句话说,application而非app。这是因为mod_wsgi查找application。如果没有完成,你将得到404响应,但也可能是Apache错误日志中的错误。