【发布时间】:2015-03-19 13:14:27
【问题描述】:
我在使用命令 rails s 启动我的 Rails 服务器时遇到问题。我使用 Thin 作为我的网络服务器。每当我尝试启动 rails 服务器时,thin 都会开始监听端口 3000,然后它会调用 eventmachine gem 通过调用 start_tcp_server 来启动服务器,这给了我一个错误,即端口 3000 上已经运行了一些东西,也就是说,当然是瘦服务器。我在互联网上尝试了很多解决方案,但似乎没有什么对我有用。 Stackoverflow 上有很多与此问题相关的问题,但没有解决我的问题。请看一下这个贴:http://chopapp.com/#mtvadchu
更新:
我的/etc/hosts 文件有问题。我的文件中有一些无效字符,即
ahi 127.0.0.1 localhost
所以ahi 部分无效。我刚刚删除了这些字符,一切都很好。因此,如果其他人遇到此问题,请确保您的 /etc/hosts 文件有效。
【问题讨论】:
-
如果您调用
rails s -p 4000会告诉thin在端口4000 上运行会发生什么? -
无论我使用哪个端口,我都会遇到同样的错误。因为 Thin 正在向 eventmachine 发送相同的端口。
-
你试过这个SO Answer?并检查
tmp/pids/server.pid不存在?请展示您尝试过的内容,以便我们解决这些问题。 -
是的,
tmp/pids文件夹中没有文件。需要明确的是,我正在使用 RVM,并且我还有另一个用于 ruby 2.0.0 和 rails 4.0 的 gemset,它工作正常。我只是将存储库克隆到另一个文件夹,并将 ruby 和 rails 版本分别升级到 2.2.0 和 4.2。现在我无法在这个新环境中启动服务器。 P.S:我已经尝试了提供的问题链接中的所有解决方案。 -
哦,我只是错过了该问题的一个解决方案,而该解决方案对我有用。对此很抱歉,但我的问题的解决方案是 stackoverflow.com/a/20330258/1765499 我不知道为什么会这样但它是......
标签: ruby thin eventmachine ruby-on-rails-4.2