我的应用程序在我的 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/