Apache

Apache2.4でrails4.2をproductionで動かす

apache-passenger-rails
o_wani
この記事は作成から8年以上経過しているため、内容が古くなっている可能性があります。

CentOS7Apache2.4という構成のサーバがある。今回はそこでrails4.2.5を動かすことになったので最新のpassenger5系で、railsプロジェクトを動かす手順は前回記載した。今回はproductionモード(本番公開)で動かす手順を記載する。

今回は以下の環境がすでに出来ている状態から行う。

今回のサーバ構成

  • CentOS 7
  • Rails 4.2.5.1
  • ruby 2.3.0
  • Apache 2.4.6
  • Passenger 5.0.24
1.$ passenger-config --version
2.Phusion Passenger 5.0.25

passenger-develのインストール。

1.$ sudo yum install passenger-devel-5.0.25

2.secret_key_baseの設定

rake secretでkey作成

1.$ RAILS_ENV=production rake secret
2.3u8fjeiofj8fgu44a3jjvodkjfvdsmfe90ut3490t4jvhb099aa5m64ty2967hh5fq5

/etc/profileの修正

/etc/profileの編集

1.$ sudo vi /etc/profile

最後の行に以下の内容を追加。

1.export SECRET_KEY_BASE=3u8fjeiofj8fgu44a3jjvodkjfvdsmfe90ut3490t4jvhb099aa5m64ty2967hh5fq5

.bash_profileの修正

1.$ vi ~/.bash_profile

最後の行に以下の内容を追加。

1.export SECRET_KEY_BASE=3u8fjeiofj8fgu44a3jjvodkjfvdsmfe90ut3490t4jvhb099aa5m64ty2967hh5fq5

3.設定の確認

ターミナルを一回ログアウトし、ログイン。

1.$ echo $SECRET_KEY_BASE
2.3u8fjeiofj8fgu44a3jjvodkjfvdsmfe90ut3490t4jvhb099aa5m64ty2967hh5fq5

4.Aapcheの設定

/etc/httpd/conf.d/vhost.confRailsEnv productionの追記

1.<VirtualHost *:80>
2....
3.RailsEnv production
4....
5.</VirtualHost>

5.アセットのプリコンパイル

圧縮した、CSSやjsや画像が出来あがる。

1.$ bundle exec rake assets:precompile RAILS_ENV=production

6.Aapcheの再起動

Apacheを再起動する。

1.$ sudo /etc/init.d/httpd restart

7.その他

productionモードで画像が表示されなくなったので、自分の場合、app/assets/imagesの画像をpublic/assetsにコピーして対応した。あとで、ちゃんとした対応を調べよう。

あとがき

productionモードのほうがパフォーマンスも高く、404のときもエラーではなく404ページが表示されるようになる。

参考サイト:
How to solve error “Missing secret_key_base for ‘production’ environment” on Heroku (Rails 4.1)

STAFF
o_wani
o_wani
スタッフ
大学卒業後、15年間WEB業界で働く。現在はマネジメントに従事していますが、ChatGPTの登場に触発され、このブログを再開。AIをパートナーに、自分で手を動かして実装する楽しさと喜びを再発見中。時代が変わりつつある中でも、陳腐化しない情報発信も目指しています。
記事URLをコピーしました