3

我已经在 apache 服务器上部署了一个 python 烧瓶应用程序。这是我的abc.conf文件:

WSGIDaemonProcess voting_app threads=5
WSGIScriptAlias /election /var/www/voting_app/voting.wsgi

LogLevel info
ErrorLog "/var/www/voting_app/error.log"
CustomLog "/var/www/voting_app/access.log" combined

<Directory /var/www/voting_app>
    WSGIProcessGroup voting_app
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

为了检查调试,我在我的应用程序中犯了一个语法错误。重新启动服务器时,我收到 500 服务器错误,但我无法在任何地方看到错误的详细信息。我检查了我作为日志添加的两个文件——它们完全是空白的。中的日志文件也是如此/var/log/apache2。我在这里想念什么?

4

3 回答 3

6

在生产环境中运行 Flask 时,而不是使用内置的开发服务器,它会将应用程序异常转换为 HTTP 500 响应,但不会记录任何内容。所以你看到的是正常的。

如果您是唯一一个查看该站点的人,您可以暂时启用调试模式,就像使用开发服务器自动完成一样。有关如何执行此操作,请参阅:

http://flask.pocoo.org/docs/quickstart/#debug-mode

具体来说:

app.debug = True

其中 'app' 是 Fl​​ask 类实例。

这将导致在发出请求的浏览器中显示错误的详细信息。

在真正的生产系统上,您显然不应该使用它,因此在这种情况下,您应该设置 Flask 来记录此类应用程序错误。为此,请参阅:

http://flask.pocoo.org/docs/errorhandling/

于 2012-09-16T05:06:37.200 回答
0

您是否检查过 Apache 在目录中是否具有写入权限voting_app

于 2012-09-12T16:08:12.697 回答
0

如果您在 Ubuntu 11.10 或更高版本上运行,那么您可能会被这个错误所困扰。显然,当 Python 子进程崩溃时,它应该将堆栈跟踪转储到 Apache 日志,但在某些情况下它无法这样做。该错误报告引用了 mod_wsgi 维护者的另一个错误报告。记者在调试问题方面取得了一些进展,但早在 2013 年就陷入了困境,AFAICT 的进展从此停止。

至少现在您应该按照 Graham Dumpleton 的回答并按照 Flask 文档的描述为您的应用程序配置一个记录器。您可能希望将该记录器配置代码包装在 try-except 块中,以防初始设置失败。

于 2014-08-26T00:42:50.393 回答