ruby-on-rails - 在 Rails 3.2 的生产模式下检查 500 内部服务器错误

标签 ruby-on-rails ruby-on-rails-3 ubuntu nginx unicorn

我的应用程序在我的 linode 帐户中处于生产模式,我在一页中收到 500 内部服务器错误消息:

We're sorry, but something went wrong.

但是在我的开发环境中这个页面运行良好。

如何调试这个错误?

如何在我的生产模式中查看错误来源?

我希望 Rails 在生产模式下显示错误。

我该怎么做?

谢谢!

最佳答案

如果您有权访问 ssh,请通过 ssh 登录到您的服务器并转到您的 rails 日志目录,该目录位于您的 rails 目录中。

一旦你在那里运行命令 tail production.log 。如果这不能为您提供足够的信息,您还可以执行 tail -n100 production.log(为您提供生产日志的最后一百行)。

如果您已通过 heroku 部署,则可以通过在本地控制台中运行 heroku logs 来访问日志。 (更多信息在这里https://devcenter.heroku.com/articles/logging)

我还发现使用 exception_notification gem 很有帮助 https://github.com/rails/exception_notification在生产中运行时,因为它会在发生错误时通过电子邮件向您发送堆栈跟踪信息。许多其他人也使用 Hoptoad (http://hoptoadapp.com/) 或 Exceptional (http://www.exceptional.io/),但我更喜欢简单的 exception_notification gem。

此外,在极少数情况下,当我无法将错误作为最终措施进行跟踪时,我有时会在远程服务器防火墙上临时打开端口 3000,然后 cd 到 rails 项目并运行 rails server production 在 config/environments/production.rb 中将日志级别设置为调试,这样我就可以在控制台中看到错误,然后在完成后关闭端口。

希望对您有所帮助。

关于ruby-on-rails - 在 Rails 3.2 的生产模式下检查 500 内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10664661/

相关文章:

docker - 尝试在本地 PC 中启用 RBAC 时 Minikube 运行异常

javascript - 如何使用鼠标移动网页上的页面部分(段落)?

ruby-on-rails - Ruby on Rails 语法问题

ruby-on-rails - 使用 Ruby on Rails Twitter Gem 在 Twitter 上上传多张图片

mysql - AJAX 资源的复杂事件记录查询

php - 同时从 php 调用 python 脚本。如何在后台运行python脚本(异步)

ruby-on-rails - Rails 自定义标记记录器

ruby-on-rails - Rails AR 日期范围查询 - 夏令时 - 重叠

ruby-on-rails-3 - sunspot_solr - NoMethodError(未定义方法 `result=' 为 nil :NilClass)

ubuntu - 在 Ubuntu Server 12.04 上设置静态 IP 会丢失外部连接