Python 使用Flask和wsgi的Apache设置
我有一个使用Flask和python构建的小型web应用程序。我用来开发一切的内部服务器运行良好。但是现在我想使用apache开始使用它。但是它不起作用。请记住,我以前从未使用过apache或基于web的东西 我以本指南作为出发点: 现在,我的应用程序位于名为“/rg/server.py”的文件中,如下所示:Python 使用Flask和wsgi的Apache设置,python,linux,apache,wsgi,Python,Linux,Apache,Wsgi,我有一个使用Flask和python构建的小型web应用程序。我用来开发一切的内部服务器运行良好。但是现在我想使用apache开始使用它。但是它不起作用。请记住,我以前从未使用过apache或基于web的东西 我以本指南作为出发点: 现在,我的应用程序位于名为“/rg/server.py”的文件中,如下所示: app=Flask(__name__) # all app routes... if __name__ == '__main__': app.run( debu
app=Flask(__name__)
# all app routes...
if __name__ == '__main__':
app.run(
debug=True,
host="127.0.0.1",
port=80
)
我有一个wsgi文件“/rg/wsgi/minerva.wsgi”
最后,我在“etc/apach2/sites available/minerva.com”中有一个apache配置文件:
服务器名minerva.test
WSGIDaemonProcess minerva线程=10
WSGIScriptAlias//rg/wsgi/minerva.wsgi
密涅瓦集团
WSGIApplicationGroup%{GLOBAL}
命令拒绝,允许
通融
然后我用a2ensite minerva.com更新了apache,成功了。然后我发布了Apache,没有错误。但是我无论如何都不能通过minerva.test
如果我输入apache2ctl-S,它会列出minerva.test
我不知道出了什么问题
系统信息:
OS:debian 64位
python 2.7我要检查的第一件事是确保apache安装并加载了mod_wsgi。如果可以的话,您的设置与我的非常相似,只是有一些细微的差别:
对于mod_WSGI,WSGI应用程序入口点必须称为“application”。你有:
from server import app as minerva
应该是:
from server import app as application
但你还没走到那一步,要不然就行了:
sys.path.insert(0, /rg)
将给出一个语法错误
再往回看,而不是:
<VirtualHost *>
你应该:
<VirtualHost *:80>
最后,如果“minerva.test”实际上不是一个可解析的主机,那么您将一事无成
因此,请用您在浏览器中使用的实际URL填写您的问题,并指出“minerva.test”是否列在本地主机文件中。谢谢。照你说的做了,它就行了!只需了解如何允许我的lan中的客户端通过minerva.test url:)访问它
<VirtualHost *>
<VirtualHost *:80>