LoginSignup
11
10

More than 5 years have passed since last update.

Rails4.2を始める

Last updated at Posted at 2014-12-30

Rails4.2 チュートリアル

  • そこそこハマったのでメモっておく
  • railsのデフォルトページが表示されるまでがスコープ

環境

  • ホストOS:Windows7
  • ゲストOS:CentOS6.5
  • Ruby:2.1.1p76
  • Rails:4.2.0

環境整備

  • Bundlerのインストール
gem i bundler
  • Railsのインストール
    • これをインストールすると、フレームワークを構成するActiveRecordやActionPack、さらにRailsが依存しているサードパーティのgemも全てインストールされる。
    • ドキュメントとか不要なものは弾く --no-ri --no-rdoc
    • 進捗状況はわかるようにする -V
gem i rails --no-ri --no-rdoc -V
  • Railsアプリケーション作成
    • アプリケーションジェネレータが呼び出される。
    • ディレクトリが作成されてその中に必要な物がザクザク作成される
rails new rails4_test
  • エラー。なんかnokogiriのインストールでこけたっぽい
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /home/vagrant/.rbenv/versions/2.1.1/bin/ruby extconf.rb
checking if the C compiler accepts ... yes
Building nokogiri using packaged libraries.
checking for iconv... yes
************************************************************************
IMPORTANT NOTICE:

Buidling Nokogiri with a packaged version of libxml2-2.9.2

gem install nokogiri -v '1.6.0'


ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] = 'YES'
gem 'nokogiri', '1.6.0'

  • アップデート

bundle update

  • 成功した
Your bundle is updated!


  • ポートの変更
  • 他のWebアプリをすでにポート3000で使ってるので、別ポート(3001)を使用することにする
require 'rails/commands/server'
module Rails
  class Server
    def default_options
      super.merge({:Port => 3001})
    end
  end
end
  • ポートを開放してやる
vi /etc/sysconfig/iptables
  • 開いたファイルに書きを追記する
-A INPUT -p tcp -m tcp --dport 3001 -j ACCEPT
  • 結果的にiptablesは以下の感じになった
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3001 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
  • iptablesを再起動しておく
/etc/init.d/iptables restart

改めて起動

  • もっかいrailsプロジェクトを新規作成
rails new rails4test
  • プロジェクトディレクトリに入ってrails起動
cd rails4test
rails s
  • 別のエラー
WARN  TCPServer Error: Address already in use - bind(2)
  • なんか動いてるので問題があるっぽい該当プロセスを見つけて
ps ax
  • 殺す
kill -9 プロセス番号
  • 再度Rails起動
rails s
  • 起動したっぽい
=> Booting WEBrick
=> Rails 4.2.0 application starting in development on http://localhost:3001
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2014-12-24 15:02:59] INFO  WEBrick 1.3.1
[2014-12-24 15:02:59] INFO  ruby 2.1.1 (2014-02-24) [x86_64-linux]
[2014-12-24 15:02:59] INFO  WEBrick::HTTPServer#start: pid=19003 port=3001
  • ホストOSから接続してみる(http://ゲストOSのIP:3001)
  • 繋がらない

  • ゲストOS内でcurlしてみる

curl http://ゲストOSのIP:3001
rails s -b 0.0.0.0
  • 起動時のメッセージが変わった
=> Booting WEBrick
=> Rails 4.2.0 application starting in development on http://0.0.0.0:3001
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2014-12-24 15:07:56] INFO  WEBrick 1.3.1
[2014-12-24 15:07:56] INFO  ruby 2.1.1 (2014-02-24) [x86_64-linux]
[2014-12-24 15:07:56] INFO  WEBrick::HTTPServer#start: pid=19030 port=3001
  • ホストOSからアクセスしてみる(http://ゲストOSのIP:3001)
  • つながった(やったー)
11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10