【Rails4】環境構築手順まとめ ( CentOS 7.4+Rails 4.2.10+Apache 2.4.6+MySQL 14.14 )
目次
- 事前準備
- NIC有効化
sudoコマンドでパスワードを聞かれないようにする
各種インストール手順
- gitインストール
- 依存するパッケージインストール
- rbenvインストール
- rubyインストール
- railsインストール
- bundlerインストール
- gemインストール
- apacheインストール
- passengerインストール
- Apache(Passenger)とRailsの連携設定
- Railsプロジェクト作成に必要なモジュールをインストール
- MySQLインストール
MySQL設定
動作確認手順
- ファイアウォール無効化
- Railsプロジェクト作成
- Rails動作確認
- 疎通確認(外部)
疎通確認(内部)
参考情報
- コマンド
- ログ格納場所
- 環境情報
事前準備
- sudoコマンドでパスワードを聞かれないようにする
各種インストール手順
- gitインストール
- 依存するパッケージインストール
- rbenvインストール
- rubyインストール
- railsインストール
- bundlerインストール
- gemインストール
- apacheインストール
- passengerインストール
- Apache(Passenger)とRailsの連携設定
動作確認手順
- ファイアウォール無効化
- Railsプロジェクト作成
- Rails動作確認
参考情報
- コマンド
- ログ格納場所
- 環境情報
事前準備
- sudoコマンドでパスワードを聞かれないようにする
設定ファイルを開く
$ sudo visudo
・設定ファイルに追記する ※pugiemonnという一般ユーザーにsudo権限を付与します。
root ALL=(ALL) ALL pugiemonn ALL=(ALL) ALL
各種インストール手順
参考: https://qiita.com/shinyashikis@github/items/3501c5f7f71a8e345c3d
- gitインストール
$ sudo yum install git
- 依存するパッケージインストール
$ sudo yum install gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel
- rbenvインストール
$ git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv $ echo 'export RBENV_ROOT="/usr/local/rbenv"' >> /etc/profile $ echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> /etc/profile $ echo 'eval "$(rbenv init -)"' >> /etc/profile
- エラーが表示されるため、ディレクトリを作成
参考: http://blog.panicblanket.com/archives/4326
sudo mkdir /usr/local/rbenv/shims sudo mkdir /usr/local/rbenv/versions
- いったんターミナル閉じたあとバージョン確認
$ rbenv --version
- ruby-buildインストール
$ git clone https://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build
- rubyインストール
$ rbenv install -l $ rbenv install -v 2.3.7 $ rbenv rehash
- 使用するバージョンを設定
$ rbenv global 2.3.7
- バージョン確認
$ ruby -v ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-linux]
※古いバージョンだとインストールに失敗し、パッチを適用する必要がある
参考:https://qiita.com/kter/items/e04b79a855e0ba595c12
- railsインストール
$ gem update --system $ gem install -v 4.2.9 --no-ri --no-rdoc rails $ gem install bundler $ rbenv rehash
- バージョン確認
$ rails -v
- bundlerインストール
参考:https://www.sejuku.net/blog/19603
$ rbenv exec gem install bundler
- gemインストール
bundlerでgemインストール
参考: https://www.sejuku.net/blog/19603 https://qiita.com/oshou/items/6283c2315dc7dd244aef http://blog.tokoyax.com/entry/ruby/bundler
- Gemfile作成
$ bundle init
- Gemfileに追加するgemを追記する ※デフォルトの記載は削除しないこと
# すべての環境で利用 gem 'slim' # 開発、テスト環境で利用 group :development, :test do gem 'pry-rails' gem 'pry-byebug' gem 'rspec-rails' end group :development do gem 'capistrano' gem 'capistrano-rails' gem 'capistrano-bundler' gem 'guard-rspec' gem 'quiet_assets' end # テスト環境で利用 group :test do gem 'database_cleaner' gem 'faker' end # 本番環境で利用 group :production do end
- Gemfileでgemインストール ※gemfileに記載後にコマンドを実行すること
$ bundle install
- apacheインストール
参考: https://qiita.com/tamano/items/9e0c91b570bc07e3ffaf http://redmine.jp/tech_note/apache-passenger/
$ sudo yum install httpd httpd-devel curl-devel apr-devel apr-util-devel
- passengerインストール
$ sudo gem install passenger $ sudo rbenv rehash
- apacheにpassengerモジュールをインストール ※インストールに30分以上かかる。
$ sudo passenger-install-apache2-module
参考:https://qiita.com/merrill/items/87bf1ecfac8aa49f06a7
※ 必要なソフトウェアがない場合は赤字で知らせてくれるので、インストールしてからもう一度コマンドを実行する。
- Apache(Passenger)とRailsの連携設定
$ passenger-install-apache2-module --snippet > /etc/httpd/conf/httpd.conf $ sudo echo "export PATH=/usr/local/rbenv/shims:$PATH" >> /etc/sysconfig/httpd
- Apacheの設定ファイルに追記(httpd.conf)
$ sudo vi /etc/httpd/conf/httpd.conf ServerName localhost:80 <VirtualHost *:80> RailsEnv development PassengerEnabled on ServerName 192.168.56.102:80 # サーバIPを追記 DocumentRoot /sample/public # RailsプロジェクトのPublicフォルダを指定 ErrorLog /var/log/httpd/app.error.log CustomLog /var/log/httpd/app.access.log combined AddDefaultCharset SJIS # 文字コード指定 <Directory /sample/public> # RailsプロジェクトのPublicフォルダを指定 AllowOverride all Require all granted Options -MultiViews </Directory> </VirtualHost>
- Apacheの設定ファイルの文法チェック
$ apachectl configtest
- 設定ファイルを反映させるために再起動
$ sudo systemctl restart httpd
動作確認手順
- ファイアウォール無効化 ※HTTPで外部からアクセス可能にするため
systemctl stop firewalld
※参考: http://www.server-memo.net/centos-settings/centos7/firewalld-stop.html
$ firewall-cmd --add-service=http --zone=public --permanent $ firewall-cmd --reload
- プロジェクト作成 ※ -dオプションで利用するDBを指定
$ sudo rails new sample -d mysql
- Rails動作確認 ・Apache起動
$ sudo systemctl start httpd
・Apache起動確認
$ sudo systemctl status httpd
- HTTPアクセスを確認するためにログファイルを開き、HTTPでアクセスした際にログが追記されることを確認
$ tail -f /var/log/httpd/app.access.log
- 疎通確認(外部) ブラウザから↓のURLにアクセスし、Railsのデフォルト画面が表示されることを確認
http://192.168.56.102
※Apacheのデフォルト画面が表示された場合
・ブラウザからスーパーリロードし、最新のファイルを取得する(chromeの場合、Ctrl+R)
・上記でも改善しない場合、キャッシュを削除する、またが別のブラウザでアクセスを試行する
- 疎通確認(内部)
ターミナルから↓のコマンドを実行する。
$ curl http://localhost
htmlに↓が記載されていることを確認
<title>Ruby on Rails: Welcome aboard</title>
参考情報
コマンド
・Passengerテストコマンド
passenger-config validate-install
・Passenger再起動コマンド
passenger-config restart-app
・インストール済みパッケージを検索
rpm -qa | grep httpd
ログ格納場所
・Apache
sudo vi /var/log/httpd/app.access.log sudo vi /var/log/httpd/access_log
- Rails
sudo vi log/development.log
環境情報 ※2018/05/09 時点
- Phusion Passenger
$ passenger-config --version Phusion Passenger 5.2.3
- Apache
$ httpd -v Server version: Apache/2.4.6 (CentOS)
- Rails
$ rails -v Rails 4.2.10
- OSバージョン
$ cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
- Mysql
$ mysql --version mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
- Git
$ git --version git version 1.8.3.1
- Ruby
$ ruby -v ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-linux]