新人Railsエンジニアの備忘録

忘れやすい性格なので、ハマったところとか、日々学んだことをメモとして残します。他の方が参照したときに少しでも役立てれば、うれしいです。

【Rails4】デフォルトのWelcome画面を表示しようとしたところ、エラー(Incomplete response received from application)

f:id:fairemygeneration:20181210142227j:plain:w300

【エラーメッセージ】
ブラウザで下記のメッセージ

Incomplete response received from application

apacheのログファイルに下記のメッセージ(/var/log/httpd/error_log)

*** Exception RuntimeError in Rack application object (Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml`)

【原因】
秘密鍵の設定が必要
参考サイト:
https://qiita.com/Takuan_Oishii/items/32981e860734e5f45670

【対処】
・秘密鍵生成
$ rake secret <長い秘密鍵の文字列が表示される>

・環境変数を設定
$ vi ~/.bash_profile

 export SECRET_KEY_BASE='<秘密鍵の情報をコピペ>'  #これを追記
 export RAILS_ENV='production'
 export RAILS_DATABASE_PASSWORD='【MySQLパスワード】'

・秘密鍵の情報を格納した環境変数が読み込まれないため、直接記載(secret_key_base: XXX)する。
$ sudo vi config/secrets.yml

production:<br>
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> #これをコメントアウト(環境変数を設定しているがなぜか読み込まれないため)
△secret_key_base:△<秘密鍵の情報をコピペ>  #これを追記
※△は半角スペース、半角スペース入れないとエラーのままになるので注意すること

・アプリに設定変更を反映
$ passenger-config restart-app

※環境情報
OS:Centos6.9
フレームワーク : Rails 4.2.9
Web:apache 2.2
DB : MySQL 5.6
ruby:2.3.7