为什么我的Rails应用程序总是在生产模式下运行?

问题描述 投票:2回答:2

这是Rails 3.0.3。

我的部署是带有Phusion Passenger的Apache 2.0。 我的httpd.conf块看起来像这样:

<VirtualHost *:80>
   ServerName www.mycarparts.co
   DocumentRoot /projects/mcp5/public
   <Directory /projects/mcp5/public>
      AllowOverride all
      Options -MultiViews
      Allow from all                                                                                                                                     
   </Directory>
  RailsEnv staging
</VirtualHost>

我的配置目录中也未指定“生产”。 grep -i -r产生这个:

config / application.rb:#你只限于:test,:development,或:production。 config / database.yml:#不要将此db设置为与开发或生产相同。 config / database.yml:production:config / database.yml:database:mcp_production config / database.yml:database:mcp_production config / environments / production.rb:#生产环境适用于已完成的“实时”应用程序。 config / environments / production.rb:#在生产config / environments / production.rb中使用不同的缓存存储:#在生产中,Apache或nginx已经执行此配置/ newrelic.yml:#prigeized RAILS_ENV(即,生产,分段等)config / newrelic.yml:#不用于生产或负载测试。
config / newrelic.yml:#打开生产中的代理,进行全天候监控。 NewRelic config / newrelic.yml:production:config / newrelic.yml:#与生产相同。 提供对该环境的支持

Apache / Passenger / Rails堆栈的这些小惊喜开始变得令人生气。 任何人都可以帮助我以正确的模式运行我的应用程序吗?

编辑:我可以把:

RailsEnv peeweeeffingherman

在那里,应用程序仍然出现在生产模式,我知道这是默认的。 显然,设置没有被读取。 那为什么会这样?

ruby-on-rails-3 passenger
2个回答
11
投票

如果您使用Phusion Passenger <3.0.2,则RailsEnv仅对Rails 1和Rails 2应用程序有效; Rails 3应用程序被认为是Rack应用程序,需要RackEnv。

这是用户混淆的潜在根源,因此Phusion Passenger 3,RailsEnv和RackEnv已经相同,Phusion Passenger同时设置了RAILS_ENV和RACK_ENV。 Nginx版本的Phusion Passenger一直都是这样的。


1
投票

你试过rails_env production吗?

© www.soinside.com 2019 - 2024. All rights reserved.