引き続き インストール作業を続けます。今回は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のインストールです。
コメント
私は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サーバーが必要なのです。
丁寧に助言いただきありがとうございます。
iptables -A INPUT -p tcp -m tcp –dport 3000 -j ACCEPT
が何故か反映されていなかったようでした。iptablesの設定ファイルをviで開いて3000のポートを追加して、rails server “サーバーのIP”でrailsのWelcomeページに接続することができました。
やはり、今の自分の状態では正常に動いても動かなくても原因を正しく理解することが難しいですので、VPSやIPの勉強からコツコツやっていくことにいたします。
引き続き、ブログを拝見させていただきます。どうもありがとうございました。