Rails

RailsでポートとIPアドレスを指定する方法

More than 1 year has passed since last update.


はじめに

例えば同じ開発環境で複数プロジェクト開発していて、こっちのプロジェクトはポート3000で、こっちのプロジェクトはポート3001でみたいなケースはよくあると思うのですが、その際の対応方法となります


やりかた


IPアドレスの指定方法

まず、なんのオプションもなく、rails serverコマンドを打つとこんな感じとなります

$ rails server

=> Booting WEBrick
=> Rails 4.2.5 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-12-16 12:30:59] INFO WEBrick 1.3.1
[2016-12-16 12:30:59] INFO ruby 2.3.0 (2015-12-25) [x86_64-linux]
[2016-12-16 12:30:59] INFO WEBrick::HTTPServer#start: pid=6111 port=3000

この場合、デフォルトポートは3000となり、IPはlocalhost(127.0.0.1)となります

Macなどローカル開発している場合は特に問題ないのですが、他のサーバーにSSHで接続して開発している場合、接続することができません

なので、以下の-bオプションでIPアドレスを指定します

$ rails s -b 172.20.7.61

=> Booting WEBrick
=> Rails 4.2.5 application starting in development on http://172.20.7.61:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-12-16 12:38:58] INFO WEBrick 1.3.1
[2016-12-16 12:38:58] INFO ruby 2.3.0 (2015-12-25) [x86_64-linux]
[2016-12-16 12:38:58] INFO WEBrick::HTTPServer#start: pid=6241 port=3000

このように変更することができます


ポート番号の指定方法

別のプロジェクトを同一環境で開発していて別ポートでWEBサーバーを立ち上げたいなどの場合に活用できます

-pオプションでポート番号を指定してあげるだけですね!

$ rails s -p 3200

=> Booting WEBrick
=> Rails 4.2.5 application starting in development on http://localhost:3200
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-12-16 12:44:33] INFO WEBrick 1.3.1
[2016-12-16 12:44:33] INFO ruby 2.3.0 (2015-12-25) [x86_64-linux]
[2016-12-16 12:44:33] INFO WEBrick::HTTPServer#start: pid=6354 port=3200

IP指定のオプションと組み合わせることも可能です!

$ rails s -b 172.20.7.61 -p 3100

=> Booting WEBrick
=> Rails 4.2.5 application starting in development on http://172.20.7.61:3100
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-12-16 12:45:40] INFO WEBrick 1.3.1
[2016-12-16 12:45:40] INFO ruby 2.3.0 (2015-12-25) [x86_64-linux]
[2016-12-16 12:45:40] INFO WEBrick::HTTPServer#start: pid=6407 port=3100


おわりに

Railsを勉強し始めた時期に地味にここでハマった記憶がありますw

Railsはプログラミングだけではなくインフラ周りの知識も必要となるのでやっていて本当に楽しいっす^^