Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Flask和wsgi的Apache设置_Python_Linux_Apache_Wsgi - Fatal编程技术网

Python 使用Flask和wsgi的Apache设置

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

我有一个使用Flask和python构建的小型web应用程序。我用来开发一切的内部服务器运行良好。但是现在我想使用apache开始使用它。但是它不起作用。请记住,我以前从未使用过apache或基于web的东西

我以本指南作为出发点:

现在,我的应用程序位于名为“/rg/server.py”的文件中,如下所示:

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。如果可以的话,您的设置与我的非常相似,只是有一些细微的差别:

  • 我必须在VirtualHost定义的上方添加WSGISocketPrefix/var/run/wsgi。看
  • 我在WSGIDaemonProcess行中包含了用户和组值

  • 对于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>