Rails が production 環境で真っ白、SECRET_KEY_BASE 設定忘れが原因でした

mot發表於2015-01-13

production 環境で、なぜか Rails アプリケーションの畫面が真っ白になってしまった。

— 環境 —
Rails 4.1

Unicorn エラーログを確認

unicorn のエラーログを確認しますと…

$ tail -f log/unicorn-stderr.log E, [2014-08-26T18:05:42.567438 #24681] ERROR -- : app error: Missing `secret_key_base` for `production` environment, set this value in `config/secrets.yml` (RuntimeError)

$ tail -f log/unicorn-stderr.log

E, [2014-08-26T18:05:42.567438 #24681] ERROR -- : app error: Missing `secret_key_base` for `production` environment, set this value in `config/secrets.yml` (RuntimeError)

production 用の secret_key_base が見つかりません、とエラーメッセージが出ていました。
production 環境の secret_key_base を設定

config/secrets.yml を確認しますと、案の定 secret_key_base が ENV[“SECRET_KEY_BASE”] と、環境変數で設定するようになっている。確かこの変更は、Rails4.1からだったと記憶してます。

config/secrets.yml
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

この環境変數を設定してなかったために、secret_key_base が見つかりませんのエラーになっていた。以下のコマンドで、ランダム値の secret_key_base を生成します。

$ bundle exec rake secret

生成した値を、secret_key_base に設定しましたところ、とりあえず正常に動作確認しました。

環境変數で渡す場合は、どうやるのが定番なのでしょうかね…。以下リンクを參考お願いします。

相關文章