2013-07-10 3 views
1

Я работаю над приложением Rails, которое использует порты, я пытаюсь его экспортировать. Вот что я пробовал:Экспорт переменной в производственную среду

конфигурации/environment.rb

# Load the rails application 
require File.expand_path('../application', __FILE__) 

# Initialize the rails application 
Facturas::Application.initialize! 
ENV['PORT_NUMBER'] = '12000' 
    ActionMailer::Base.smtp_settings = { 
    :address    => "smtp.gmail.com", 
    :port     => 587, 
    :domain    => 'gmail.com', 
    :user_name   => 'email', 
    :password    => '****************', 
    :authentication  => 'plain', 
    :enable_starttls_auto => true } 

также файл на сервере/и т.д./окружающая среда:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" 
PORT_NUMBER = "12000" 

Я пытался их по отдельности и вместе, но он не делает трюк, я звоню номер порта в драгоценный камень, если это помогает:

port = ENV['PORT_NUMBER'] || find_available_port 

Я на Ubuntu Server, приста король с апачем и пассажиром.

+1

Посмотрите эту ссылку http://railsapps.github.io/rails-environment-variables.html. –

ответ

0

Я использовал ENV для аналогичных целей. Только вопрос, который я могу догадаться, если переменная нужна камнем во время фазы загрузки. config/environment.rb загружается после загрузки драгоценных камней. В таком случае, он должен быть помещен в конфигурации/boot.rb к вершине (до Bundler нагрузок драгоценных камней):

require 'rubygems' 
    ENV['PORT_NUMBER'] = '12000' 

Для другого подхода,/и т.д./окружающая среда будет использоваться только получить, когда пользователь ЖУРНАЛЫ РЕГИСТРАЦИИ- в, что не относится к Apache (который начинается как сервис в Ubuntu). Попробуйте установить ENV в Apache http://www.modrails.com/documentation/Users%20guide%20Apache.html#env_vars_passenger_apps

+0

Да! Вот как я, наконец, получил его на работу, спасибо @Deepak Kumar, я просто поместил код на boot.rb, и теперь он работает так, как я хотел. –

Смежные вопросы