RAILS_ENV установлен, но Rails.env отличается - PullRequest
0 голосов
/ 26 июля 2011

Я думаю, что исчерпал все, что смог найти, чтобы попытаться установить среду для моего приложения rails.

В .htaccess

RailsEnv production (produces a 500 server error)

В среде .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

Кроме того, в зависимости от того, где я установил переменную RAILS_ENV в environment.rb, я получаю ошибки. Если я положу его туда, где мне говорят, что это должно быть, я получу ошибку:

[вторник, 26 июля 11:42:20 2011] [предупредить] [клиент x.x.x.x] (104) Сброс соединения по пиру: mod_fcgid: ошибка чтения данных из FastCGI сервер
[Вторник, 26 июля 11:42:20 2011] [ошибка] [клиент x.x.x.x] Преждевременное завершение заголовков скриптов: 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 я вижу «развитие».

Ответы [ 2 ]

0 голосов
/ 27 июля 2011

Оказывается, у меня была куча мусорных файлов и папок, лежащих без дела от предыдущих неудачных попыток создания приложения.Я вложил приложение в папку с именем «generate» в моем основном приложении (угадайте, как ЭТО произошло: S (nub-ness)).Среди прочего, пустые папки cgi-bin и пустой файл dispatch.fcgi в моем общедоступном каталоге.У меня нет ИДЕИ, как это получилось, клянусь.

В любом случае, короче говоря, решение состояло в том, чтобы сравнить каталог моего приложения со свежим приложением rails и удалить всю ненужную информацию.Я также скопировал совершенно новые файлы отправки из нового приложения в мое текущее приложение и удалил все комментарии и лишние разрывы строк из моего файла database.yml.Форматирование символов и файлов, возможно, также сыграло свою роль где-то (моя техническая поддержка bluehost сказала).Кроме того, я прокомментировал «AddHandler fcgid-script .fcgi» из моего .htaccess - я делал это раньше безрезультатно ... поэтому я предполагаю, что ТО в сочетании с весенней очисткой устранило мою проблему.

0 голосов
/ 27 июля 2011

Согласно пассажирским документам , RailsEnv работает в .htaccess, только если установлена ​​опция AllowOverride. Вы проверили, так ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...