【Rails4】実行モードを本番(production)に変更の手順
・Railsプロジェクト作成
実行環境の指定は不要でrails newで作成する。
$ rails new <プロジェクト名>
・本番用DB作成
$ sudo rake db:create RAILS_ENV=production
・秘密鍵生成
$ rake secret <長い秘密鍵の文字列が表示される>
・環境変数設定
$ vi ~/.bash_profile
SECRET_KEY_BASE='xxx' #これを追記 RAILS_ENV='production' RAILS_DATABASE_PASSWORD='<MySQLパスワード>' export PATH SECRET_KEY_BASE RAILS_ENV RAILS_DATABASE_PASSWORD #これを追記
上記の設定でexport -p で変数が設定されていることも確認できたが秘密鍵のエラーが発生したので、下記の代替案で設定しました。
【代替案】
秘密鍵の設定は環境変数に設定するのではなく、httpd.confに設定する方法もある
https://qa.atmarkit.co.jp/q/3704
$ vi /etc/httpd/conf/httpd.conf
SetEnv SECRET_KEY_BASE <長い秘密鍵の文字列> #これを追記 Allow from all Options -MultiViews
・実行環境を確認
$ rails console
irb(main):001:0> Rails.env => "production" irb(main):002:0> Rails.env.development? => false irb(main):003:0> Rails.env.production? => true > irb(main):004:0> Rails.env.test? > => false
$ vi /etc/httpd/conf/httpd.conf
<VirtualHost *:80> RailsEnv production #これを追記
$ vi config/database.yml
database: Myapp_production username: <ユーザ名> #これを追記 password: <パスワード> #これを追記 host: localhost #これを追記
・本番環境用のログファイル作成
$ touch log/production.log
・秘密鍵情報を追記
$ vi config/secrets.yml
production: 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