【问题标题】:Deployed Rails app always coming up in development environment部署的 Rails 应用程序总是出现在开发环境中
【发布时间】:2010-11-02 16:37:53
【问题描述】:

在 Debian 上使用 Rails 3.0.1、Apache 2.2.9 和 Passenger 3.0.0。

出于某种神秘原因,Rails 应用程序正在开发环境中出现。我仔细检查了 Apache 配置、VirtualHost 文件等,在 /etc/apache2 或应用程序目录本身中,“RailsEnv”或“RAILS_ENV”的实例为零。

更糟糕的是,即使我确实将“RailsEnv 生产”行放入 VirtualHost 文件的 Directory 块中,也完全没有区别,并且该应用程序仍然出现在开发环境中。

如果我将 PassengerLogLevel 设置为 1,则不会记录任何有趣的内容。

任何有关问题所在的帮助,或者至少是确定问题的行动方案,将不胜感激。

【问题讨论】:

  • Passenger 3 是最新的最终版本。在提交问题之前尝试使用它。
  • 从旧的 apt-get Passenger 交换到当前的 3.0.0 gem;问题仍然存在。

标签: ruby-on-rails ruby-on-rails-3 passenger


【解决方案1】:

这是因为使用 config.ru,您的应用程序被检测为 Rack 应用程序,而不是 Rails 应用程序,因此您需要设置 RackEnv 而不是 RailsEnv。 “Rails”应用程序是指“Rails 1 或 2”应用程序。 Rails 3 应用程序被视为 Rack 应用程序。

【讨论】:

  • 有了这些信息,我发现有些人把“RackEnv 开发”放在了一个 .htaccess 文件中。删除让默认生产环境正常运行。非常感谢您的帮助。
【解决方案2】:

在折腾了一段时间并尝试从网络上随机尝试之后,我发现删除 Rails 生成的 config.ru 文件可以解决问题,而不会导致应用程序停止运行。为什么这会导致问题我仍然不知道,但任何遇到此问题的人都可以尝试该解决方案。

【讨论】:

    【解决方案3】:

    这里有同样的症状,但建议的解决方案都不适合我。当我将 <body> 标记设置为 <body class="<%= Rails.env %>"> 并为开发类定义一个与生产类中的背景色明显不同的背景色时,我首先注意到了这一点。我所看到的(生产和开发)都是开发颜色。当然,在浏览器中查看网页的源代码表明正在生成的类是开发类。我将 config.ru 重命名为 ~config.ru 并重新启动了 Apache2,但这没有影响。我将 RackEnv 产品添加到我的 *:80 虚拟主机文件中,其中设置了其他乘客属性。那没有影响。所以我将 ~config.ru 重置为 config.ru,重新启动 Apache2,但仍然没有看到任何变化。我很欣赏@Hongli 对 Rack 初创公司和 Rails 初创公司的解释。我只希望我的服务器会听他的!我什至为 .htaccess 做了一个递归列表 grepping——没有找到。至少我想我现在知道该在哪里继续闲逛了。


    Apache 2.2.15、Rails 3.0.3、Passenger 3.0.2、Mac OS X Server 10.6.6

    【讨论】:

    • 为了跟进我的技术,我在我的虚拟主机文件中设置了RackEnv production,然后在我的 app/views/layout/application.html.erb 文件中设置了<body class="<%= ENV['RACK_ENV'] || "development" %>"> 以实现让生产环境使用与开发中的背景颜色不同的背景颜色的预期效果。
    猜你喜欢
    • 2014-11-02
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多