【问题标题】:Pry on the production server - how can I make it work there?撬开生产服务器 - 我怎样才能让它在那里工作?
【发布时间】:2015-02-15 13:03:40
【问题描述】:

我可以使用binding.pry 在本地调试应用程序就好了。但我也需要在远程服务器(webiste)上这样做,因为在本地我没有任何错误,但在生产中我有。所以把binding.pry放在服务器上的源文件中,当我向网站发出post请求时,我没有返回任何响应,即使我在服务器上运行rails console也没有改变任何东西,也没有在rails console 中输出。

它是一个开发服务器,因此它在互联网上可见,但它是一个开发服务器,尽管对于 rails 它是生产服务器,因为RAIL_ENV 等于production。我真的需要以我可以在本地使用 pry 进行调试的方式对其进行调试。我该怎么做?

更新:

# bundle exec pry-remote
/usr/lib/ruby/1.9.1/drb/drb.rb:736:in `rescue in block in open': druby://127.0.0.1:9876 - #<Errno::ECONNREFUSED: Connection refused - connect(2)> (DRb::DRbConnError)
  from /usr/lib/ruby/1.9.1/drb/drb.rb:730:in `block in open'
  from /usr/lib/ruby/1.9.1/drb/drb.rb:729:in `each'
  from /usr/lib/ruby/1.9.1/drb/drb.rb:729:in `open'
  from /usr/lib/ruby/1.9.1/drb/drb.rb:1191:in `initialize'
  from /usr/lib/ruby/1.9.1/drb/drb.rb:1171:in `new'
  from /usr/lib/ruby/1.9.1/drb/drb.rb:1171:in `open'
  from /usr/lib/ruby/1.9.1/drb/drb.rb:1087:in `block in method_missing'
  from /usr/lib/ruby/1.9.1/drb/drb.rb:1105:in `with_friend'
  from /usr/lib/ruby/1.9.1/drb/drb.rb:1086:in `method_missing'
  from /web/my_site.com/releases/201501271120/vendor/bundle/ruby/1.9.1/gems/pry-remote-0.1.8/lib/pry-remote.rb:289:in `run'
  from /web/my_site.com/releases/201501271120/vendor/bundle/ruby/1.9.1/gems/pry-remote-0.1.8/bin/pry-remote:4:in `<top (required)>'
  from /web/my_site.com/releases/201501271120/vendor/bundle/ruby/1.9.1/bin/pry-remote:19:in `load'
  from /web/my_site.com/releases/201501271120/vendor/bundle/ruby/1.9.1/bin/pry-remote:19:in `<main>'

【问题讨论】:

  • 区别可能在于使用的应用服务器。您如何在本地开发中运行您的应用,以及如何在生产中提供服务?

标签: ruby-on-rails debugging pry


【解决方案1】:

我假设您的生产应用程序由某种守护程序服务器运行,例如 Puma 或 Unicorn。

在此设置中,pry-remote 可以提供帮助。

  1. 将其添加到您的 Gemfile 中
  2. 使用binding.remote_pry 而不是binding.pry
  3. 在你的服务器上执行bundle exec pry-remote

一旦断点被​​命中,你就会得到一个撬壳。

【讨论】:

  • 是的,在这方面也是一样。试一试!
  • 实际上,我的更新有时会出错 - 我无法启动它,有时不会,我不明白为什么会这样。
  • 对不起,你这是什么意思?
  • 看看我的更新,这个错误并不总是发生,但有时会发生。是什么原因我想不通。
  • 这对我有用,但是,只要我尝试在 pry 控制台中执行任何操作,它就会退出。
猜你喜欢
  • 1970-01-01
  • 2019-05-25
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-26
  • 1970-01-01
  • 2019-11-19
相关资源
最近更新 更多