2013-09-01 7 views
4

최근에 이와 비슷한 질문을했는데 문제가 조금씩 옮겨 감에 따라 새로운 질문을하기로 결정했습니다. Rails ENV 변수

내가 내부 서버 오류 페이지가 계속 Heroku가 내 레일 4 응용 프로그램을 밀어 데와 오류는 다음과 같습니다

당신이 있기 때문에 무슨 일이 일어나고

앱의 설정에서 config.secret_key_base을 설정해야 내 .gitignore 파일은 config/initializers/secret_token.rb을 고의로 포함합니다.

나는 추가 된 보안을위한 환경 변수로 내 secret_key_base를 설정할 수 있도록 피가로 보석을 설치했습니다. Heroku에서 키가 올바르게 설정되었는지 확인했습니다.

MyApp::Application.config.secret_key_base = ENV["SECRET_KEY_BASE"] 

을하지만, 난 여전히 같은 문제를 얻고 다음과 같이 secret_token.rb에 대한

내 코드입니다.

아무도 도와 줄 수 있습니까 ???

+2

파일이 무시되었으므로 코드 행이 heroku에서 실행되지 않습니다. 이는 서버에 존재하지 않습니다. 파일을 왜 gitignore해야합니까? ENV를 사용하고 있으므로 무시할 이유가 없습니까? – house9

+0

예, 감사합니다. 나는이 하하 바보 같은 실수를 게시 한 후 약 10 분을 발견했습니다! – tommyd456

답변

4

당신에게 Heroku에 환경 변수를 설정할 수 있습니다

heroku config:set SECRET_KEY_BASE=value 
+2

나는 이미 긁어 모으고있는 figaro : heroku가이 값을 Heroku에 자동으로 설정했다. - 내가 Heroku에서 점검 한 질문에 언급했듯이이 값은 존재하지만 여전히 문제가있다. – tommyd456

+0

@ tommyd456 heroku rails console 이 설정 확인 : Heroku가 실행 레일 콘솔을 는 > Rails.config.secret_key_base – xaph

+0

안녕 난 이미 "에게 Heroku의 설정"및 SECRET_KEY_BASE의 ENV 변수로 바로 거기 "에게 Heroku의 설정"으로 변수를 확인 – tommyd456

9

내가 한 일, 그러나 didn를 당신에게 simlilar 뭔가 ' https://devcenter.heroku.com/articles/config-vars

당신은이 명령 Heroku가에 대한 SECRET_KEY_BASE 환경 변수를 설정해야합니다 피가로 사용. 내가 오프 this blog post 요약

을 기반으로, 여기에 내가 무슨 짓을했는지 :

1) 당신의 .gitignore

2) secret_token.rb이 코드를 사용에서 설정/초기화/secret_token.rb을 제거 :

MyApp::Application.config.secret_token = if Rails.env.development? or Rails.env.test? 
    ('x' * 30) # meets minimum requirement of 30 chars long 
else 
    ENV['SECRET_TOKEN'] 
end 

3) 커밋 다시 푸시

4)의 Heroku가 ENV variale의 세트와 같은

,745,
heroku config:set SECRET_TOKEN=12345..... 

구성 설정 후 Heroku가 다시 시작되는 즉시 작업.

"레일 4.1 응용 프로그램을 배포 할 때, Heroku가 기본적으로 귀하의 응용 프로그램에 SECRET_KEY_BASE을 지정합니다."

0

이 레일 4.1을 사용하는 사람들을 도움이 될 수 있습니다 (https://blog.heroku.com/container_ready_rails_5)

즉, 아무 것도 할 필요가 없습니다. 제작 관련 비밀을 잃지 않고 .gitignore 파일에서 secrets.yml (표준 버전 그대로)을 생략 할 수 있습니다.