【问题标题】:Running a Flask App under Apache with Plesk使用 Plesk 在 Apache 下运行 Flask 应用程序
【发布时间】:2016-10-11 17:20:16
【问题描述】:

在 Apache 下使用 Plesk 运行 Flask 时遇到无数问题。这个真的让我摸不着头脑。

当我使用 Plesk 时,我意识到我需要使用 /var/www/vhosts 下的 vhosts 配置文件,而不是虚拟主机配置(位于典型的“站点可用”目录下在阿帕奇)。

当我尝试运行我的 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

如您所见。我正在使用虚拟环境。 随后,我的实际应用程序就在这里:

apps/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.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 权限。

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

【问题讨论】:

    标签: python apache flask virtualhost plesk


    【解决方案1】:

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

    /var/www/vhosts/system/{domain}/conf/vhost.conf

    添加的示例;

    <VirtualHost *:80> ServerName example.com ServerAdmin me@example.com WSGIScriptAlias /var/www/vhost/{domain}/{subdomain}/flaskapp.wsgi <Directory /var/www/vhost/{domain}/{subdomain}/static> Order allow,deny Allow from all </Directory> Alias /static /var/www/vhost/{domain}/{subdomain}/static <Directory /var/www/vhost/{domain}/{subdomain}/static> Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

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

    【讨论】:

    • 嗨,戴夫,感谢您的回复。我们最终放弃了 Plesk,因为它造成的管理困难比它解决的要多。谢谢!
    猜你喜欢
    • 2017-07-15
    • 1970-01-01
    • 2022-01-15
    • 2012-10-08
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    相关资源
    最近更新 更多