繁体   English   中英

设置了RAILS_ENV,但Rails.env不同

[英]RAILS_ENV set but Rails.env is different

我认为我已经尽力尝试并为Rails应用程序实际设置环境了。

在.htaccess中

RailsEnv production (produces a 500 server error)

在environment.rb中

ENV['RAILS_ENV'] ||= 'production' #does not set RAILS_ENV
ENV['RAILS_ENV'] = 'production' #sets RAILS_ENV to 'production', but Rails.env stays at 'development'

我正在使用bluehost ...但是直到昨天为止一切都很好...我认为我没有进行任何更改...

编辑:对不起,忘了提到它是Rails v2

另外,根据我在environment.rb中设置RAILS_ENV变量的位置,我会得到错误。 如果我将其放在应该被告知的位置,则会收到错误消息:

[2011年7月26日星期二11:42:20] [警告] [客户端xxxx](104)由对等方重置的连接:mod_fcgid:从FastCGI服务器读取数据时出错
[2011年7月26日星期二11:42:20] [错误] [客户端xxxx]脚本头的结尾过早:dispatch.fcgi

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.3.11' unless defined? RAILS_GEM_VERSION

ENV['RAILS_ENV'] = "production" unless (File.expand_path(File.dirname(__FILE__)) =~ /MyProductionFolder/).nil?
require File.join(File.dirname(__FILE__), 'boot')
ENV['GEM_PATH'] = '/home/usr/ruby/gems'

如果我在启动连接后放置它,则设置变量,但实际环境不会更改。

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.3.11' unless defined? RAILS_GEM_VERSION

require File.join(File.dirname(__FILE__), 'boot')
ENV['RAILS_ENV'] = "production" unless (File.expand_path(File.dirname(__FILE__)) =~ /MyProductionFolder/).nil?
ENV['GEM_PATH'] = '/home/usr/ruby/gems'

编辑3:检查ENV ['RAILS_ENV'],我看到“生产”,但是当直接检查RAILS_ENV时,我看到“开发”。

根据旅客文档 ,仅在设置AllowOverride Options的情况下,RailsEnv才能在.htaccess中工作。 你检查过了吗?

事实证明,由于创建应用程序的早期失败尝试,我周围有大量垃圾文件和文件夹。 我在主应用程序的内部一个名为“ generate”的文件夹中嵌套了一个应用程序(猜测那是怎么回事:S(nub-ness))。 除其他外,我周围的空cgi-bin文件夹和公共目录中的空dispatch.fcgi文件。 我发誓,那是怎么实现的。

总之,长话短说,解决方案是将我的应用程序目录与新的Rails应用程序进行比较并删除所有内容。 我还将全新的调度文件从新应用程序复制到了当前应用程序,并且从database.yml文件中删除了所有注释和多余的换行符。 字符和文件格式可能也在某处发挥了作用(我的bluehost技术支持说)。 另外,我从.htaccess中注释掉了“ AddHandler fcgid-script .fcgi”-我之前没有做过此事……所以我猜想,加上弹簧清洁解决了我的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM