はじめに
CentOS7でバージョン指定の Ruby on Rails を構築する手順を書きたいと思います。
今回は Ruby 2.3.0, Rails 4.2.5 のバージョンで構築します。
1)gitのインストール
$ sudo yum install -y git
2)パッケージのインストール
$ sudo yum install -y gcc gcc-c++ glibc-headers openssl-devel readline libyami-devel readline-devel zlib zlib-devel bzip2
3)rbenvのインストール
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
.bash_profileに以下の行を追加
$ vi ~/.bash_profile
— 以下の2行をファイル末尾に追加 —
export PATH=”$HOME/.rbenv/bin:$PATH”
eval “$(rbenv init -)”
.bash_profileの反映
$ source ~/.bash_profile
4)ruby-buildのインストール
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
5)Rubyのインストール
$ rbenv install 2.3.0
使用するバージョンを確定する
$ rbenv global 2.3.0
6)Railsのインストール
$ gem update –system
$ gem install sprockets -v 3.7.2
$ gem install -v 4.2.5 rails
7)Apacheのインストール
$ sudo yum -y install httpd httpd-devel curl-devel
8)パーミッションの設定
sudo chmod o+x “/home/[ユーザー名]”
9)Passengerのインストール
$ gem install passenger
10)ApacheへPassengerモジュール設定
※ここではメモリが2GBほど余裕があった方が良いです。
$ passenger-install-apache2-module
途中のワーニング(以下は無視でOK)
warning _FORTIFY_SOURCE requires compiling with optimization (-0)
途中、下の画面が表示されますのでコピーします。
LoadModule passenger_module /home/[ユーザー名]/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/passenger-6.0.4/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/[ユーザー名]/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/passenger-6.0.4
PassengerDefaultRuby /home/[ユーザー名]/.rbenv/versions/2.3.0/bin/ruby
</IfModule>
先程コピーした文章を次に作成するファイル内容へコピーします。
$ vi /etc/https/conf.d/passenger.conf
コピー後、次の2行を「PassengerDefaultRuby」の次行へ追加入力して保存します。
PassengerUserSwitching off
PassengerDefaultUser [ユーザー名]
次にhttpd.confを修正します
sudo vi /etc/httpd/conf/httpd.conf
ServerName行を以下のように変更して下さい
#ServerName www.example.com:80
ServerName localhost:80
次にRails設定を行います。新しく以下のファイルを作成します。
sudo vi /etc/httpd/conf.d/rails.conf
ファイルの中身は次のように入力して下さい。
<VirtualHost *:80>
ServerName localhost:80
DocumentRoot /home/[ユーザー名]/[App名]/public
RailsEnv development
PassengerEnabled on
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
AddDefaultCharset UTF-8
<Directory /home/[ユーザー名]/[App名]/public>
AllowOverride all
Require all granted
Options -MultiViews
</Directory>
</VirtualHost>
Apacheの起動とFirewallの設定
$ sudo systemctl start httpd
$ sudo firewall-cmd –permanent –zone=public –add-service=http
$ sudo firewall-cmd –permanent –zone=public –add-service=https
$ sudo firewall-cmd –reload