转载

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

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

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

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

正文到此结束
Loading...