Rails4.2beta1をインストールして最初にはまったこと

こんにちは、寺岡です。

Rails4.2は来年の夏に予定されているRails5.0に向けて、4.x系最後のマイナーバージョンアップになるそうです。
今回はRails4.2beta1のインストール方法と、ちょっとしたはまりポイントをご紹介します。

まずはさらっとインストール

railsのダウンロードにかなりの時間がかかりますので気長に待ちましょう。

インストール完了後、おもむろにサーバを起動してみます。

問題なく起動しましたね。

ブラウザからアクセスしようとしたのだが…

筆者はWindows環境にVirtualBox上にLinuxを立てて開発することが多く、今回もその構成で試しました。
LinuxはCUIのみで利用しているため、ホストのWindows環境から

でアクセスし、ブラウザで確認してみます。

あれ…接続できない?

なんとなく閃くものがあったので、Linux環境からwgetでアクセスしてみます。

こちらは問題なくアクセスできました。
次に、ssコマンドでリッスンポートとIPを確認してみます。

ループバックアドレスの127.0.0.1でlistenされているため、ホストOSからはアクセスできなかったようです。
./bin/rails sで起動したログよくよく見ると、「on http://localhost:3000」となっていますね。

試しにrails4.1の rails s で起動してみると「on http://0.0.0.0:3000」と表示され、
0.0.0.0(=全てのアドレス)でlistenされました。

rackのデフォルトが修正されていた

この修正はどこで入ったのかと調べてみると、rackバージョン1.6での仕様変更のようでした。
https://github.com/rack/rack/commit/28b014484a8ac0bbb388e7eaeeef159598ec64fc

デフォルトではHostオプションにlocalhost(普通は127.0.0.1)が指定されるように変更されています。
喫茶店やカンファレンスで公衆Wifiに繋いだ場合に不正アクセスされるのを防ぐのが目的だそうです。

listenするアドレスを指定して起動する

listenするアドレスを指定する方法を探すため、rails s のhelpを確認してみます。

お、ありましたね。
-b オプションで指定できるようです。
説明がDefault: 0.0.0.0 になったままなのはご愛嬌。

rails4.2やrack1.6はまだベータ版なので、正式版の時点でどうなっているかはわかりませんが、
-bオプションの存在をそっと心にとどめておくとよいかもしれません。

Comments are closed, but you can leave a trackback: Trackback URL.