【问题标题】:Rails Localhost not workingRails 本地主机不工作
【发布时间】:2017-07-18 12:54:16
【问题描述】:

因此,当我运行“rails server”并尝试打开任何项目时,尝试打开 localhost:3000 时出现此错误:Error

但这就是我的终端所说的:

问题是我认为这是因为我推动 git heroku 导致它失败,所以另一个表单说要卸载 heroku,但是这不起作用,我仍然收到此错误。

$ rails s

=> Booting Puma
=> Rails 5.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
/Users/User/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/core_ext/numeric/conversions.rb:138: warning: constant    ::Fixnum is deprecated
[27508] Puma starting in cluster mode...
[27508] * Version 3.7.0 (ruby 2.4.0-p0), codename: Snowy Sagebrush
[27508] * Min threads: 5, max threads: 5
[27508] * Environment: development
[27508] * Process workers: 2
[27508] * Preloading application
[27508] * Listening on tcp://0.0.0.0:3000
[27508] Use Ctrl-C to stop
[27508] - Worker 1 (pid: 27544) booted, phase: 0
[27508] - Worker 0 (pid: 27543) booted, phase: 0

以前,rails 服务器只会在“使用 Ctrl-C 停止”处停止,但现在它具有这些工作人员 ID 和其他内容。它们可能发生在我安装 heroku 并尝试使用 git heroku 推送我的项目时。这些工作人员对将来的参考意味着什么?如何再次连接到本地主机?

到目前为止,我根据其他 stackexchange 建议所做的尝试:

  1. 卸载heroku
  2. 删除 heroku 应用程序(这些应用程序失败,因为他们说即使使用全名也找不到应用程序)
  3. 注释掉 app/config/environments/production.rb 中的“config.force_ssl = true”行
  4. 删除Procfile

注意:我一直在关注 Michael Hartl 的教程,特别是第 7 章 https://www.railstutorial.org/book/sign_up 并尝试执行 SSL 部分,这是我遇到错误的时候。

【问题讨论】:

  • 你能在另一个端口上吗? rails s -p 5433
  • 当你说“之前”是什么意思? Puma 是 Rails 在 Rails 5 中默认使用的 Web 服务器,这些工作人员处理对您的应用程序的请求。
  • 当您尝试连接时,您的开发日志中是否有任何内容? 500 错误通常意味着引发了异常或类似的事情。此外,当您可以在问题中包含文字时,请不要链接到图片。
  • “之前”是指在我尝试将 Rails 程序与 Heroku 同步以实现 SSL 之前。那些工人从未出现在 Ctrl-C 行之后。当我运行 rails s -p 5433 时,我收到此错误:“gems/puma-3.7.0/lib/puma/binder.rb:269:in `initialize': Address already in use - bind(2) for "0.0 .0.0" 端口 3000 (Errno::EADDRINUSE)"。实际上,当我现在尝试运行 rails s 时,它给了我这个错误

标签: ruby-on-rails ruby git heroku ruby-on-rails-5


【解决方案1】:

好吧,在大量搜索其他堆栈溢出以了解如何解决之后,请查看:

Address already in use - bind(2) (Errno::EADDRINUSE)

问题是,在完成这 4 个修复后,我似乎已经停用了我项目的 SSL 部分,但它有剩余的端口冲突或类似的东西,因此我的评论中描述了冲突。所以我只需要用

杀死所有进程
$ kill -9 <pid>

在此之前,对于将来遇到此问题的任何人,请运行:

$ lsof -wni tcp:3000

查看哪些 pid 试图运行端口 3000 并使用 kill -9 将它们全部杀死。 然后再次执行 rails db:migrate 以使其正常工作。

希望这会有所帮助。感谢所有在 cmets 中帮助过我的人!

【讨论】:

    猜你喜欢
    • 2014-07-25
    • 1970-01-01
    • 2015-10-15
    • 2018-06-27
    • 2017-11-06
    • 2015-10-03
    • 2013-05-31
    • 2015-11-30
    相关资源
    最近更新 更多