【Rails4】デフォルトのWelcome画面を表示しようとしたところ、エラー(Incomplete response received from application)
【エラーメッセージ】
ブラウザで下記のメッセージ
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