新人Railsエンジニアの備忘録

忘れやすい性格なので、ハマったところとか、日々学んだことをメモとして残します。他の方が参照したときに少しでも役立てれば、うれしいです。

【Rails4】環境構築手順まとめ ( CentOS 7.4+Rails 4.2.10+Apache 2.4.6+MySQL 14.14 )

f:id:fairemygeneration:20181210142227j:plain:w300

目次

  1. 事前準備
  2. NIC有効化
  3. sudoコマンドでパスワードを聞かれないようにする

  4. 各種インストール手順

  5. gitインストール
  6. 依存するパッケージインストール
  7. rbenvインストール
  8. rubyインストール
  9. railsインストール
  10. bundlerインストール
  11. gemインストール
  12. apacheインストール
  13. passengerインストール
  14. Apache(Passenger)とRailsの連携設定
  15. Railsプロジェクト作成に必要なモジュールをインストール
  16. MySQLインストール
  17. MySQL設定

  18. 動作確認手順

  19. ファイアウォール無効化
  20. Railsプロジェクト作成
  21. Rails動作確認
  22. 疎通確認(外部)
  23. 疎通確認(内部)

  24. 参考情報

  25. コマンド
  26. ログ格納場所
  27. 環境情報

事前準備

  • 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]