Ruby on rails 轨道&x2B;费伊+;阿帕奇:把费伊从瘦子变成乘客

Ruby on rails 轨道&x2B;费伊+;阿帕奇:把费伊从瘦子变成乘客,ruby-on-rails,passenger,faye,Ruby On Rails,Passenger,Faye,将我们的主应用程序部署到Passenger上,将Faye部署到Thin上,目前正在运行。但我也遇到了一些问题,从那个设置过渡到Faye使用passenger 这里它建议()我可以在独立乘客上运行Faye,并使用此命令启动所述服务器 passenger start -p 9292 然而,这在本地甚至不起作用。首先,它返回这个错误,说明它在中找不到faye.js http://localhost:9292/faye?message=%5B%7B%22channel%22%3A%22%2Fmeta%

将我们的主应用程序部署到Passenger上,将Faye部署到Thin上,目前正在运行。但我也遇到了一些问题,从那个设置过渡到Faye使用passenger

这里它建议()我可以在独立乘客上运行Faye,并使用此命令启动所述服务器

passenger start -p 9292
然而,这在本地甚至不起作用。首先,它返回这个错误,说明它在中找不到faye.js

http://localhost:9292/faye?message=%5B%7B%22channel%22%3A%22%2Fmeta%2Fhandshake%22%2C%22version%22%3A%221.0%22%2C%22supportedConnectionTypes%22%3A%5B%22callback-polling%22%5D%2C%22id%22%3A%221%22%7D%5D&jsonp=__jsonp1__
错误是这样的

Failed to load resource: the server responded with a status of 404 (Not Found) 
当您将浏览器更改到指定位置时,它会显示

no route matches [GET] "/faye"
查看乘客日志,它似乎首先遇到了这个错误

Started GET "/faye" for 127.0.0.1 at 2014-05-09 10:04:23 -0700

ActionController::RoutingError (No route matches [GET] "/faye"):
uninitialized constant App::Application::FayeRails (NameError)
/Users/WEF6/.rvm/gems/ruby-1.9.3-p448/gems/activesupport-4.0.1/lib/active_support/dependencies.rb:229:in `require': cannot load such file -- passenger (LoadError)
然后遇到这个

Started OPTIONS "/faye" for 127.0.0.1 at 2014-05-09 10:04:58 -0700

ActionController::RoutingError (No route matches [OPTIONS] "/faye"):
在使用Thin运行时,我使用以下命令启动服务器

bundle exec rackup faye.ru -s thin --daemonize -E production
在我尝试的乘客启动和瘦启动之间有一些区别,但最大的区别是faye.ru从未运行过。我的faye.ru是基本的

require 'faye'
faye_server = Faye::RackAdapter.new(:mount => '/faye', :timeout => 45)
Faye::WebSocket.load_adapter('thin')
run faye_server
要把它换成乘客,我知道我需要拆下第三条线路……但接下来呢?当我把它直接添加到我的config.ru文件中时,faye服务器最终接管了整个应用程序,这显然不是我的目标。我认为也许将其放入初始值设定项中会起作用,但我遇到了以下错误:

undefined method `run' for main:Object (NoMethodError)
我认为这是因为这不是一个.ru文件,而是一个.rb文件

不管怎样,我发现自己相当困惑,我肯定会感谢任何提示/指导

编辑:

此站点()声明

不过,我已经尝试将相关代码添加到application.rb中,其中有几个配置命令

module App
  class Application < Rails::Application
编辑:

添加了FayeRails宝石,因为我是个白痴(见评论)。这也需要添加

config.middleware.delete Rack::Lock
因为(控制台输出)

然而,现在我遇到了这个错误

Started GET "/faye" for 127.0.0.1 at 2014-05-09 10:04:23 -0700

ActionController::RoutingError (No route matches [GET] "/faye"):
uninitialized constant App::Application::FayeRails (NameError)
/Users/WEF6/.rvm/gems/ruby-1.9.3-p448/gems/activesupport-4.0.1/lib/active_support/dependencies.rb:229:in `require': cannot load such file -- passenger (LoadError)
这一定与我在本帖中所做的一些更改有关,正如我在上文中所述,我在本地成功启动乘客后如何收到错误。现在运行passenger时,服务器抛出以下错误

Could not spawn process for group location#default: An error occured while starting up the preloader.
     in 'void Passenger::ApplicationPool2::SmartSpawner::handleErrorResponse(Passenger::ApplicationPool2::SmartSpawner::StartupDetails &)' (SmartSpawner.h:455)
     in 'string Passenger::ApplicationPool2::SmartSpawner::negotiatePreloaderStartup(Passenger::ApplicationPool2::SmartSpawner::StartupDetails &)' (SmartSpawner.h:566)
     in 'void Passenger::ApplicationPool2::SmartSpawner::startPreloader()' (SmartSpawner.h:206)
     in 'virtual ProcessPtr Passenger::ApplicationPool2::SmartSpawner::spawn(const Passenger::ApplicationPool2::Options &)' (SmartSpawner.h:752)
     in 'void Passenger::ApplicationPool2::Group::spawnThreadRealMain(const SpawnerPtr &, const Passenger::ApplicationPool2::Options &, unsigned int)' (Implementation.cpp:804)

[ 2014-05-09 12:15:15.1055 71107/0x10c9ce000 agents/HelperAgent/RequestHandler.h:2222 ]: [Client 21] Cannot checkout session.
Error page:
cannot load such file -- passenger (LoadError)

您必须在gem文件中声明faye rails gem,包括此行:

'faye-rails', '~> 2.0.0'
更新:

我认为在
应用程序中添加以下行可以解决机架锁定问题。rb

config.middleware.delete Rack::Lock

我希望这对你有帮助

我注意到你在跑步时使用了faye.ru。Phusion Passenger仅支持config.ru作为机架启动文件的文件名。也许解决方案就像将faye.ru重命名为config.ru一样简单?

您使用的是哪个乘客版本?版本4.0.42;无论是本地还是我的服务器上,faye rails都是一个gem,您是否在gem文件中声明gem‘faye rails’,“~>2.0.0”?颜色让我尴尬;我错误地认为有角度的faye rails包括faye rails,因此从未添加宝石。谢谢!我能用我给出的方向回答这个问题吗?所以你可以接受答案……你也可以把我发现的解决方案加入到中间问题中去(事实上,这是我的建议),但是,说清楚了,在完成从“瘦”的费伊到“乘客”的费伊的总体目标之前,我不会接受任何答案。我也考虑过这一点。我在Rails应用程序的根目录中有一个faye.ru文件。但乘客怎么会知道呢?不会的。所以我假设它只看配置。ru,所以我在尝试连接faye时找不到404。但是,我的问题是,如果重命名该文件,那么运行Rails应用程序本身的config.ru的内容呢?