使用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权限。
知道我在哪里错了吗?我认为我在某个地方犯了一个相当明显的错误......
答案 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.请记住,其中一些编辑是针对子域进行的。我希望你的问题得到解决!