【问题标题】:debug production server (linode) ruby on rails在 Rails 上调试生产服务器 (linode) ruby
【发布时间】:2012-10-04 20:21:25
【问题描述】:

在部署站点时,我是一个完全的新手,请原谅这个问题的含糊之处。

我已按照 ryan bates 第 337 集 (https://github.com/railscasts/337-capistrano-recipes) 部署我的 Rails 应用程序。我正在使用带有 postgres 的 ubuntu 10.04 lts、nginx、unicorn 和 capistrano。

在 cap deploy 之后:cold 一切似乎都很好。

但是当我点击我的 ip 时,我的 rails 应用程序给了我这个错误:

We're sorry, but something went wrong.

我知道这不是一个很有帮助的错误消息。我认为它与数据库有关,因为我之前在使用 postgresql 在 heroku 上部署时见过它。

我不知道如何在 linode 服务器上检查我的日志文件并获取有关如何调试的更多信息。

非常感谢任何指导。

提前谢谢大家。

【问题讨论】:

    标签: ruby-on-rails capistrano postgresql-9.1 unicorn linode


    【解决方案1】:

    我在 OpenShift 上部署 Rails 应用时遇到了类似问题。

    在我的情况下,错误是由丢失的资产产生的,未在 manifest 文件中定义。

    事实证明,它必须对 assets 做一些事情。我开始挖掘它,我发现它是在 Rails 找不到您正在寻找的资产时生成的,因为它们要么丢失,要么未编译,要么未包含在清单中(直接通过名称或间接通过要求树)。

    第一种情况很清楚。您应该将它们包含在您的应用程序代码中,或者您应该将它们添加到您的设备中。第二种情况对您来说应该不是问题,因为 OpenShift 会为您做到这一点。但是,如果您确实对此有疑问,请在论坛中搜索有关不编译资产的问题。

    第三种情况有两种解决方案。有正确的和快速的。关于第二个,我需要专家的意见。它们在这里:您需要将资产(通常是样式表和/或一些第三方工具)添加到要在环境 application.rb 中预编译的项目列表中。

    config.assets.precompile += ['960sm.css']
    

    或者我发现的快速方法,它适用于您的所有资产: config/environments/production.rb中有一个设置

    config.assets.compile = true
    

    像这样将其设置为 true,这应该可以解决问题。

    我希望这会有所帮助。我花了两周时间研究同一个问题。

    【讨论】:

    • 类似问题。谢谢您的帮助!只需将 config.assets.compile = 从 false 更改为 true。
    • 但是现在我的 twitterbootstrap 文件没有被编译或者什么的。 Bootstrap 无法用于生产。如果您对如何修复它有任何想法,非常感谢您的帮助。
    • 哦!您正在使用less-rails。这有点棘手。你能告诉我这个问题的详细信息吗?
    • 我为它创建了一个新问题,因此我可以为您提供所有详细信息:stackoverflow.com/questions/12896673/…
    【解决方案2】:

    您需要使用 ssh 登录到您的 linode 服务器并自己查看日志文件。

    Railscast 中 config/deploy.rb 文件中的这一行:

    set :deploy_to, "/home/#{user}/apps/#{application}"
    

    告诉您您的应用程序部署到 linode 服务器上的哪个目录。在该目录中,您应该会看到一个名为 shared/log 的目录;你的日志应该在那里。

    【讨论】:

    • 感谢您的帮助。现在我知道如何调试了。我遵循了你的路径和上面的路径,它们都引导我找到了答案。
    猜你喜欢
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2011-03-08
    • 1970-01-01
    • 2012-08-03
    • 2014-12-04
    相关资源
    最近更新 更多