我没有运气让这个工作。
我的 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>
我有一个非应用程序工厂 Flask 应用程序在 Apache 上运行良好,并且已经快乐了很多年,但是这个应用程序没有给我任何错误,也没有返回任何内容。在过去的几个小时里,我一直在尝试各种更改并寻找解决方案,但无济于事。有什么想法吗?
最佳答案
您不能在以下位置使用配置文件的相对路径名:
app = create_app("config.py")
它必须是绝对路径。
阅读:
如果您返回空响应或它挂起,也请尝试设置:
WSGIApplicationGroup %{GLOBAL}
阅读:
WSGI 脚本文件中的 WSGI 应用程序入口点也应设置为:
application = create_app("c:/dpc/dpc/config.py")
换句话说,是application
,而不是app
。这是因为 mod_wsgi 寻找 application
。如果不这样做,您将收到 404 响应,但也可能在 Apache 错误日志中收到错误。
关于python - 在apache上部署flask应用程序工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45727663/