Rails Passenger Phusion:错误未知协议级别:6(SocketError)

时间:2018-05-29 15:19:44

标签: ruby-on-rails apache passenger

我正在使用capistrano成功部署服务器上的rails应用程序(apache +乘客集成)但应用程序未运行。我收到了乘客错误:

unknown protocol level: 6 (SocketError)
  /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:317:in `setsockopt'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:317:in `create_tcp_socket'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:112:in `initialize'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:135:in `new'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:135:in `negotiate_spawn_command'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:158:in `<module:App>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
  /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>'

有没有人知道我在哪里可以查看/我应该检查什么来诊断/解决此错误?

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题。在使用capistrano进行部署期间,只要方法to_str在类Fixnum中不存在,我就会在gem中出错。作为一种解决方法,我定义了这个类:

class Fixnum
  def to_str
    to_s
  end
end

这个定义解决了我的每次部署问题,但它会影响乘客的功能,结果你可以在最初的问题中看到。