uWSGI中的Flask仅导入SQLAlchemy导致500内部服务器错误

时间:2015-03-19 04:53:30

标签: python nginx flask flask-sqlalchemy uwsgi

TL; DR编辑:我没有设置正确的文件夹权限。


当我通过source venv/bin/activate && python run.py运行烧瓶时,一切正常。

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, world!"

if __name__ == "__main__":
    app.debug = True
    app.run(host='0.0.0.0', port=8080)

但是当我使用nginx / emperor.uwsgi运行相同的应用程序时,每次命中服务器都会返回500.如果我注释掉SQLAlchemy导入,那么页面会按预期加载。


Per this thread我已尝试启用lazy / lazy-app,但它没有任何效果。 Flask正在引发异常,因此nginx / uwsgi没有记录任何内容。

我尝试过使用from werkzeug.debug import DebuggedApplication,但仍然只是获得了绝对的简单内容和#34;内部服务器错误"在我的浏览器中。


配置:

[uwsgi]
uid = http
gid = http

socket = /var/run/project.uwsgi.sock
chown-socket = http
chmod-socket = 664

pidfile = /var/run/project.master.pid

master = true
lazy = true
lazy-apps = true

chdir = /srv/http/project
python-path = /srv/http/project
virtualenv = /srv/http/project/venv
module = run
callable = app
plugin = python
home = venv

没什么不寻常的。


source venv/bin/activate && pip list && deactivate输出:

Flask (0.10.1)
Flask-SQLAlchemy (2.0)
itsdangerous (0.24)
Jinja2 (2.7.3)
MarkupSafe (0.23)
pip (6.0.8)
setuptools (12.0.5)
SQLAlchemy (0.9.9)
uWSGI (2.0.9)
Werkzeug (0.10.1)

所有常见的嫌疑人都在场。

完全在黑暗中,任何人都知道如何调试/处理这个?

1 个答案:

答案 0 :(得分:1)

您是否也通过包管理器安装 uwsgi-emperor

请确保您使用正确的uwsgi跟踪。

有时从pip和apt安装uwsgi会产生这个问题。我自己将/usr/bin/uwsgi替换为/usr/local/bin/uwsgi中的/etc/init.d/uwsgi

此外,您应检查路径权限和数据库访问权限(如果有)。