nayucolony

勉強したこととか

Parallelsで立ち上げたIEからrailsにアクセスする

こうするだけ

たちあげるときに次のようにする。

rails s -b 0.0.0.0

what

通常、Macでnode.jsなんかをつかってローカルサーバーを立ち上げてそこにアクセスする場合、http://localhost:8000のようにURLをうつ。

しかし、同じマシン内でParallelsを起動し、その中でIEを起動して動作チェックをする場合などは http://192.168.11.2:8000のように、ローカルIPアドレスを指定する必要がある。

この192.168.11.2の部分は各自ネットワーク環境によってことなる。 ifconfigで確認できる人はそうすればいいし、わかんなければシステム環境設定>ネットワークを確認すれば Wi-FiはXXXXXXXに接続していて、IPアドレス 192.168.11.2が設定されています。みたいにかいているはず。

しかし、Railsでサーバを立ち上げる場合、ローカルIPアドレスを指定してもアクセスできない。 Railslocalhostでしかアクセスできないのだが、ParallelsからはlocalhostMacにアクセスできない(windows自身を参照してしまう) (そもそもlocalhostの正体は127.0.0.1という「ループバックアドレス」であり、自分のマシン自身だ。自分のPCをサーバーとして動かしているところに、自分のPCからアクセスするという自作自演をしている。)

よって、localhostではない、別のIPアドレスでアクセスできるようにしてやる必要がある。 そこで-bオプションを使う。 bindすなわち束縛の意味で、引数として渡したIPアドレスに結びつけてアクセスできるようにできる。

そこで、0.0.0.0というアドレスを使う。 0.0.0.0localhostのように自分自身を表すが、ループバックではなく、外部からもアクセスできる自分自身である。

mac0.0.0.0Railsアプリを公開している状態になるので、そのネットワークに繋いでいる人は0.0.0.0でアクセスできる。 これは、Parallelsも例外ではない。

よって、

rails s -b 0.0.0.0

としてサーバを起動し

http://0.0.0.0:8000/

のように任意のポート番号を指定することで、アクセスが可能になる。