部署 Puma 部署 Cannot assign requested address - bind (2) for "::1" port 3000

runup · 2016年07月29日 · 最后由 runup 回复于 2016年07月30日 · 5231 次阅读

在 Ubuntu14.04 部署系统,参考文章,使用 rvm 安装,ruby2.3.0,rails5.0.0,启动项目 rails s 出现如下问题:

/home/deploy/.rvm/gems/ruby-2.3.0/gems/puma-3.6.0/lib/puma/binder.rb:266:in `initialize': Cannot assign requested address - bind(2) for "::1" port 3000 (Errno::EADDRNOTAVAIL)

google 之后,最匹配的问题是Cannot assign requested address - bind(2) (Errno::EADDRNOTAVAIL),但是解决不了目前的问题,求指导。 注:端口没有被占用。

应该是 puma 和 passenger 争用 3000 端口了。把 puma 从 Gemfile 里删了试试呗。

#1 楼 @gyorou 按照你的方法,rails s 项目直接使用 webrick 启动了

#2 楼 @runup 好吧我想你可能没弄懂 passenger 的工作方式。passgener 就是让你像跑 php 一样,直接把 code 往上一扔,nginx 或者 apache 就会启动你的 web 服务。所以你根本不需要 rails s

按我的理解,跑 Rails 服务可以大概两种方式,一种是用类似 php 的方式,用 unicon 或者 passenger 这种 web 服务器的扩展来解释你的代码。 另一种就是 application server + web server 反向代理方式。

::1 是 127.0.0.1 的 ipv6 地址,你指定一下绑定 ip 就好了,例如 rails s -b 0.0.0.0

yunshang rails 的启动问提。 提及了此话题。 11月18日 20:32
需要 登录 后方可回复, 如果你还没有账号请 注册新账号