【问题标题】:Flask in uWSGI causing 500 Internal Server Error just from importing SQLAlchemyuWSGI 中的 Flask 仅因导入 SQLAlchemy 而导致 500 Internal Server Error
【发布时间】:2015-05-22 03:28:51
【问题描述】:

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 导入,那么页面会按预期加载。


根据this thread,我尝试启用惰性/惰性应用程序,但没有效果。 Flask 引发异常,因此 nginx/uwsgi 没有记录任何内容。

我已经尝试使用from werkzeug.debug import DebuggedApplication,但仍然只是在我的浏览器中得到绝对的准系统“内部服务器错误”。


配置:

[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)

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

对此一无所知,有人知道如何调试/处理这个吗?

【问题讨论】:

  • 谁说是 Flask 提高准系统 500,而不是 uwsgi?
  • @chrischambers 工作时,您是否以与 nginx 相同的用户(通常是 www-user 或类似名称)运行?我怀疑这可能是包含您要导入的模块的目录的权限问题。
  • @ChrisChambers 对于它的价值,我的问题是我的文件夹权限在 var 和 srv 中不正确。很抱歉我不能提供更多帮助,我记得这个错误是多么令人沮丧。
  • 想通了,与上述完全不同的问题。这是会话的问题,我没有定义密钥。显然,我必须在 __main__ 部分之前定义它,否则它不会被添加。现在工作正常。
  • 也许该线程应该被标记为已解决...

标签: python nginx flask flask-sqlalchemy uwsgi


【解决方案1】:

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

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

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

如果有的话,您还应该检查路径权限和数据库访问权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多