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

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

We're sorry, but something went wrong.

但是在我的开发环境中工作正常.

我该如何调试此错误?

如何在生产模式中查看错误原点?

我希望rails在生产模式下显示错误.

我该怎么做?

谢谢!

解决方法:

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

一旦你在那里运行命令tail production.log.如果这没有给你足够的信息,你也可以做一个tail -n100 production.log(给你生产日志的最后几百行).

如果已通过heroku部署,则可以通过在本地控制台中运行heroku日志来访问日志. (更多信息在这里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所以我可以在控制台中看到错误,然后在我完成后关闭端口.

希望有所帮助.

上一篇:简介vsftpd及搭建配置 关闭selinux 不能创建文件


下一篇:刷题记录:[ASIS 2019]Unicorn shop