Rails服务器正在运行,但无法连接到localhost:3000

时间:2012-11-15 09:03:40

标签: ruby-on-rails localhost

我正在使用railstutorial.org学习Ruby on Rails 我已经设置了所有内容,并且从第1章开始工作正常。但是,我的下一个应用程序突然出现问题。

我运行“rails server”

=> Booting WEBrick
=> Rails 3.2.9 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-11-15 00:45:08] INFO  WEBrick 1.3.1
[2012-11-15 00:45:08] INFO  ruby 1.9.3 (2012-11-10) [x86_64-linux]
[2012-11-15 00:45:08] INFO  WEBrick::HTTPServer#start: pid=2752 port=3000

似乎工作正常,就像我以前的应用程序一样。

但是,我尝试在各种浏览器上连接到localhost:3000,0.0.0.0:3000,127.0.0.1:3000并且它们都无法建立与服务器的连接。

有些注意事项:

- 我刚刚能够连接到localhost - 它似乎突然停止了工作。

- 我的第一个应用程序工作得非常好,但现在它对我的第一个应用程序也不起作用。

- 我没有阻止端口的防火墙,我的主机文件不是问题。

- 我在Ubuntu 12.10

我几乎总能通过搜索找到解决方案,但不是这次..所以我需要一些帮助。这是非常令人沮丧的,因为我觉得这是一个简单的问题,我花了太长时间被困住。

谢谢。

9 个答案:

答案 0 :(得分:14)

使用rails 4.2.0,服务器默认绑定到localhost,而不是0.0.0.0。在虚拟盒中使用rails时,从主机访问服务器时,绑定地址必须为0.0.0.0

使用-b0.0.0.0启动rails服务器,以便从主机/浏览器访问rails服务器。

http://guides.rubyonrails.org/4_2_release_notes.html#default-host-for-rails-server https://github.com/samuelkadolph/unicorn-rails/issues/12#issuecomment-60875268

答案 1 :(得分:13)

尝试在3001之类的其他端口中运行它:
rails server -p 3001
如果它的工作比在3000上面再次尝试它作为上面的命令 我的其他一些软件正在使用你的3000端口,这就是它没有响应的原因 或者对于某些高级内容,请参阅here

答案 2 :(得分:7)

确保在启动rails之前运行rake db:create

答案 3 :(得分:5)

我正在使用rails 5.0.0.beta3并遇到了这个问题。 @ andrewleung的回答对我很有帮助。

似乎Rails默认绑定地址在我的计算机上搞砸了(Mac OS 10.11.6);在其他一些方面,它运作正常。

简单的解决方案就是使用rails server -b127.0.0.1。然后,您可以访问localhost:3000

我的猜测是(从https://serverfault.com/a/544188暗示)我的计算机上的localhost绑定搞砸了,而127.0.0.1更具体。

答案 4 :(得分:1)

我遇到了同样的问题,我意识到它位于config/environment/production.rb文件中,config.assets.compile = false必须更改为config.assets.compile = true

但是,这可能会导致某些javascript和sass元素无法正常工作

答案 5 :(得分:0)

原来我遇到的问题是我的虚拟机已经耗尽了硬盘空间,而且还没有足够的空间来创建server.pid文件。但是出于某种原因,它并没有因为文件被创建而引发错误,但却被留空了。

答案 6 :(得分:0)

我遇到了同样的问题。事实证明,浏览器同步也在localhost:3000上运行。

由于一些Rails开发人员会使用浏览器同步来快速测试前端脚本,我认为这可能是使用端口3000的一个流行原因。

答案 7 :(得分:0)

检查你的/ etc / hosts文件..是ip 0.0.0.0还是指向其他地址的localhost。

答案 8 :(得分:0)

对我来说...我在工作中担任代理人,不得不做rails s -b 0.0.0.0 -p 3000