0

Nginx와 Unicorn을 설치했고 우분투 14.04에서 Rails 5 응용 프로그램과 함께 작동 시키려고했습니다. 나는Rails에서 환경 변수를 읽으려면 어떻게해야합니까?

... 내가 nginx를하고 유니콘 내 웹 페이지를 방문 시도, 내 유니콘 로그에이 오류가 다시 시작할 때 그러나

development: 
    secret_key_base: 547268978521e278fd572db969ce2d25cea9da7c6db4f7164942d02322177128704a4c76ed1f536dd7ac791b10ef0355b4542f21b128077657bdef156472ad81 

test: 
    secret_key_base: c1aae665f8ed25da55a457870526dcac878d5a3734ab2fd29b4ec32b4b31bbe2f16d3b72bf0cacf0c6c1c88e4862d35f45c2c10140d990388e5e2184459cd23e 

# Do not keep production secrets in the repository, 
# instead read values from the environment. 
production: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

가 들어 ~/myproject라는/설정/secrets.yml에서 파일이 내 프로젝트 디렉토리에서

E, [2017-04-09T22:37:34.736220 #11291] ERROR -- : app error: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml` (RuntimeError) 
E, [2017-04-09T22:37:34.736414 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/gems/railties-5.0.2/lib/rails/application.rb:513:in `validate_secret_key_config!' 
E, [2017-04-09T22:37:34.736462 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/gems/railties-5.0.2/lib/rails/application.rb:246:in `env_config' 
E, [2017-04-09T22:37:34.736491 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/gems/railties-5.0.2/lib/rails/engine.rb:693:in `build_request' 
E, [2017-04-09T22:37:34.736515 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/gems/railties-5.0.2/lib/rails/application.rb:521:in `build_request' 
E, [2017-04-09T22:37:34.736541 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/gems/railties-5.0.2/lib/rails/engine.rb:521:in `call' 
E, [2017-04-09T22:37:34.736646 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:562:in `process_client' 
E, [2017-04-09T22:37:34.736680 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:658:in `worker_loop' 
E, [2017-04-09T22:37:34.736709 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:508:in `spawn_missing_workers' 
E, [2017-04-09T22:37:34.736738 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:132:in `start' 
E, [2017-04-09T22:37:34.736767 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/gems/unicorn-5.2.0/bin/unicorn:126:in `<top (required)>' 
E, [2017-04-09T22:37:34.736793 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/bin/unicorn:22:in `load' 
E, [2017-04-09T22:37:34.736818 #11291] ERROR -- : /home/rails/.gem/ruby/2.4.0/bin/unicorn:22:in `<top (required)>' 
E, [2017-04-09T22:37:34.736842 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/cli/exec.rb:74:in `load' 
E, [2017-04-09T22:37:34.736867 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/cli/exec.rb:74:in `kernel_load' 
E, [2017-04-09T22:37:34.736894 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/cli/exec.rb:27:in `run' 
E, [2017-04-09T22:37:34.736939 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/cli.rb:332:in `exec' 
E, [2017-04-09T22:37:34.736968 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' 
E, [2017-04-09T22:37:34.736996 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command' 
E, [2017-04-09T22:37:34.737021 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch' 
E, [2017-04-09T22:37:34.737050 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/cli.rb:20:in `dispatch' 
E, [2017-04-09T22:37:34.737078 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start' 
E, [2017-04-09T22:37:34.737106 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/cli.rb:11:in `start' 
E, [2017-04-09T22:37:34.737136 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/exe/bundle:34:in `block in <top (required)>' 
E, [2017-04-09T22:37:34.737170 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/lib/bundler/friendly_errors.rb:100:in `with_friendly_errors' 
E, [2017-04-09T22:37:34.737200 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/gems/bundler-1.13.7/exe/bundle:26:in `<top (required)>' 
E, [2017-04-09T22:37:34.737230 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/bin/bundle:22:in `load' 
E, [2017-04-09T22:37:34.737253 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/bin/bundle:22:in `<main>' 
E, [2017-04-09T22:37:34.737266 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `eval' 
E, [2017-04-09T22:37:34.737280 #11291] ERROR -- : /usr/local/rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `<main>' 

는, 내가 환경에 이러한 값을 통합 할 수있는 레일을 얻는 방법

SECRET_KEY_BASE=secretbase 
APP_DATABASE_PASSWORD=apppassword 

을 정의, /home/rails/myproject/.rbenv-vars, 또는 거기에 일부입니다 다른 장소에 넣어 야지. 이 값들은 무엇입니까?

답변

1
  • 사용 피가로 보석의
  • 사용 export SECRET_KEY_BASE=secretbase, 나는 그것을 사용
    1. 는 local_env.yml 파일을 사용
    여기

    더 많은 정보 : rails environment variables

  • +0

    , 난 그 퍼팅하고 같은 application.rb 3. 보석의 config/에서 .yml 및 부하 만들기? # 2의 경우, 단순히 내 Gemfile에 그 보석을 포함시키는 것보다 더 할 일이 있습니다. # 3에서는 config/secrets.xml 대신 local_env.yml을 사용합니까? – Dave

    +0

    명령에서 # 1의 경우 레일을 실행합니다. # 2를 사용하려면 github의 Github에서 명령어를 얻을 수있는 설정 파일을 생성하십시오. # 3의 경우 여전히 필요합니다. local_env.yml은 use env 변수를 관리하는 방법 일뿐입니다. – aisensiy

    0

    , 당신을 ENV 변수를 선언하려면 이것을 홈 폴더의 SECRET_KEY_BASE=secretbase .bashrc 또는 .bash_profile에 추가하거나 셸의 SECRET_KEY_BASE=secretbase을 내보낼 수 있습니다. 당신은 당신이 YML에서 루비 코드를 사용하고 알고 잘할 레일에 대한 다른 보석을 필요로 사용하지 않으려면

    이제 두 번째 점은, 당신이 yml.erbyml 파일의 확장자를 변경해야 YML 파일에서 사용하는 파일. <%= %>'은 확장자가 yml.erb이되도록 레일스에서 ​​var와 메소드를 호출하는 방법입니다.

    0

    이것은 레일이 env 변수를 읽는 방법입니다. <%= ENV["SECRET_KEY_BASE"] %> SECRET_KEY_BASE의 값을 제공해야합니다. 이렇게하려면 다음 방법 중 하나를 사용하십시오 1. 셸을 사용하여 간단히 내 보냅니다. export SECRET_KEY_BASE=secretvalue 2. # 1의 경우 figaro, dotenv