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

AKW*_*KWF 2 passenger ruby-on-rails-3

这是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>
Run Code Online (Sandbox Code Playgroud)

我的配置目录中也未指定"生产".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
Run Code Online (Sandbox Code Playgroud)

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

Hon*_*gli 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一直都是这样的.