我正在使用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>'
有没有人知道我在哪里可以查看/我应该检查什么来诊断/解决此错误?
答案 0 :(得分:0)
我设法解决了这个问题。在使用capistrano进行部署期间,只要方法to_str在类Fixnum中不存在,我就会在gem中出错。作为一种解决方法,我定义了这个类:
class Fixnum
def to_str
to_s
end
end
这个定义解决了我的每次部署问题,但它会影响乘客的功能,结果你可以在最初的问题中看到。