簡體   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