Rails5 on Nginx on CentOS7 環境構築 (2)

引き続き インストール作業を続けます。今回はRubyとRails5です。

必須モジュールのインストール

SSHターミナル画面でrootユーザーに切り替えておきます。

sudo su

必須モジュールをインストールします。

yum -y install gcc
yum -y install gcc-c++
yum -y install zlib
yum -y install zlib-devel
yum -y install openssl-devel
yum -y install readline-devel
yum -y install sqlite-devel
yum -y install git

Rubyのインストール

rbenvでRuby環境を作ります。

git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv
git clone https://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build
git clone https://github.com/sstephenson/rbenv-gem-rehash.git /usr/local/rbenv/plugins/rbenv-gem-rehash
git clone https://github.com/rkh/rbenv-update.git /usr/local/rbenv/plugins/rbenv-update

/etc/profile に下記の設定を追記

vim /etc/profile
....................................
export RBENV_ROOT=/usr/local/rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"

sudoersファイルも追加

visudo
Defaults    env_keep += "RBENV_ROOT"

反映しておきます。

source /etc/profile

最新安定板 Ruby 2.4.1 をインストールします。

rbenv install 2.4.1
rbenv global 2.4.1
ruby -v

ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
2.4.1 がインストールされました。

Rails5 のインストール

RubyGemsを最新化

gem update --system
gem -v

現在の最新2.6.12にアップデートされました。
Ruby on Rails をインストールします。今回インストトールするバージョンは5.0.2とします。

gem install rails --version "=5.0.2"
gem install bundler
gem install spring
gem install therubyracer
rails -v

Rails 5.0.2 がインストールされました。
動作確認もしておきましょう。

作業用ユーザーでログインして

rails new sample
cd sample
vim Gemfile

# を外して、therubyracerを有効にしておきます。

gem 'therubyracer', platforms: :ruby

サンプルアプリケーションを作成

rails generate scaffold post title:string body:text
bundle install
rake db:migrate
rails server

=> Booting Puma
=> Rails 5.0.3 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode…
* Version 3.8.2 (ruby 2.4.1-p111), codename: Sassy Salamander
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

Rails5からデフォルトのアプリケーションサーバーがWEBrickからPumaに変更されています。

動作確認のためPumaポートを開けておきます。

iptables -A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
service iptables save
iptables -L
systemctl restart iptables

ブラウザから http://xxx.xx.xx.xx:3000 にアクセスしてみます。

次回はMySQLのインストールです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. kikuchi より:

    私はruby on railsを学習中のWebデザイナーです。
    参考書などを読んで、Ruby on Railsの仕組みはなんとなく理解出来、ローカルで簡単なアプリケーションは何度か作ってみたのですが、
    Webに後悔するためのさくらVPSの環境構築で、チグハグになっております。
    いろいろとネット上でVPSの環境構築について調べ、様々な記事があったのですが、こちらのサイトの記事が一番自分のシチュエーションに近く、また新しい記事で詳細に記載があったので参考にさせてもらい、ありがたく活用させていただいています。

    質問なのですが、自分になにかミスがあったのか、rails serverを起動してもIP:3000でアクセスを拒否されてしまいます。手順は掲載のソースをコピペさせてもらったので間違いなく、エラーも出なかったので正しく辿って行けていると思います。なぜ反映されないか確認する方法はありますか?不躾ですが、初心者のミスを予想できたりしますでしょうか?

    個人的には、apacheはサーバーに入れたことがあるので、apache=Webサーバーの感覚です。自分の方では、アクセスが拒否されているため、apacheや最近流行りのnginx?が無くてもrails serverだけで動くのも不思議です。そういうものなのでしょうか。

    また、勉強中の自分にぜひ、良いのでアドバイスをいただきたいのですが、
    このページで書いてある流れは理解できるのですが、今後エラーなどが起こった時に自力で解決できないと不安です。もともとサーバーに関する知識がほぼ0に近いです。初期セッティングなど人の書いているソースを見ないと何も思いつかないレベルです。サーバーのOSの操作や仕組みなど初心者の勉強に適しているオススメの書籍や勉強方法はありますか?

    長くなりました。すみません。答えられる範囲で良いので、ご回答いただけるとありがたいです。

    • 管理者 より:

      ローカル環境が Mac OS X や Linux であれば、curlコマンドを使用すると何が起こっているのかわかるかもしれません。
      curl xxx.xxx.xxx.xxx:3000

      「rails server」の起動メッセージはどうですか。
      * Listening on tcp://0.0.0.0:3000 が出力されていますか。出力されていない場合は、
      「rails server -b 0.0.0.0」
      でどうでしょうか。ブラウザからアクセスできますか。config/puma.rbでport番号を3000以外に変更している場合は、このコマンドを使用してport番号3000で待ち受けることができます。

      pumaとはRailsのアプリケーションサーバーです。
      Stack Overflow から引用します。
      ***************
      アプリケーションサーバーはあなたのRailsアプリケーションを動かしているものです。アプリケーションサーバーはあなたのコードを読み込み、アプリケーションをメモリに保持します。アプリケーションサーバーはwebサーバーからリクエストを受け取ると、Railsアプリケーションにそのことを知らせます。アプリケーションがリクエストを処理すると、アプリケーションサーバーはそのレスポンスをwebサーバーに返します。(そのレスポンスは最終的にユーザーへ届きます。)
      ***************

      pumaのようなアプリケーションサーバーはwebサーバーとしても使用できますが、大量のリクエストを処理することは苦手です。またSSLのリクエストにも対応していません。
      公開するにはApacheやNginxのようなWebサーバーが必要なのです。

      • kikuchi より:

        丁寧に助言いただきありがとうございます。

        iptables -A INPUT -p tcp -m tcp –dport 3000 -j ACCEPT
        が何故か反映されていなかったようでした。iptablesの設定ファイルをviで開いて3000のポートを追加して、rails server “サーバーのIP”でrailsのWelcomeページに接続することができました。

        やはり、今の自分の状態では正常に動いても動かなくても原因を正しく理解することが難しいですので、VPSやIPの勉強からコツコツやっていくことにいたします。
        引き続き、ブログを拝見させていただきます。どうもありがとうございました。