使用Plesk在Apache下运行Flask应用程序

时间:2016-06-10 16:44:17

标签: python apache flask virtualhost plesk

使用Plesk在Apache下运行Flask时无法解决问题。真的一直在摸着这个。

当我使用Plesk时,我意识到我需要使用/ var / www / vhosts下的 vhosts 配置文件而不是virtualhost配置(位于典型的“sites-available”目录下)在Apache)。

当我尝试运行Flask应用程序时,我在Apache错误日志中收到错误:

  

从守护进程'unifica'读取响应头时超时:/apps/start.wsgi

我的wsgi应用程序文件位于此处:

  

/apps/start.wsgi

,内容如下:

activate_this = '/apps/unifica/venv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
from unifica import app as application

正如您将注意到的那样。我正在使用虚拟环境。 随后,我的实际应用程序就住在这里:

  

应用/ unifica / main.py

,内容如下:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == "__main__":
    app.run(host='0.0.0.0')

因为我的网站是通过ssl保护的;我有以下两个vhost配置:

  

vhost.conf和vhost_ssl.conf

我的vhost.conf包含:

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

(重定向不安全的请求)

我的vhost_ssl.conf包含:

WSGIDaemonProcess unifica user=flaskuser group=flaskgroup threads=5
WSGIScriptAlias / /apps/start.wsgi

<Directory /apps >
    WSGIProcessGroup unifica
    WSGIApplicationGroup %{GLOBAL}
    Require all granted
    WSGIScriptReloading On
</Directory>

flaskuser存在且属于flaskgroup。我已在/ apps /文件夹中为flaskuser(作为所有者)分配了0755权限。

知道我在哪里错了吗?我认为我在某个地方犯了一个相当明显的错误......

1 个答案:

答案 0 :(得分:2)

如果你还没有解决这个问题,我可以通过编辑Plesk 12.5中的自定义vhost文件来使Flask工作,这是在CentOS7上。它位于这里;

的/ var / WWW /虚拟主机/系统/ {域} /conf/vhost.conf

添加内容的示例;

var response = { "keyOne": { "keyChanged": { "keyTwo": { "keyINeed": "myData" } } } } var myKey = Object.keys(response.keyOne)[0]; var myValue = response.keyOne[myKey].keyTwo.keyINeed; // note the [] here console.log(myKey) console.log(myValue);

在我的设置中,我使用权限705.请记住,其中一些编辑是针对子域进行的。我希望你的问题得到解决!