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

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 に設定しましたところ、とりあえず正常に動作確認しました。

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

    原文作者:mot
    原文地址: https://segmentfault.com/a/1190000002482825
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞