3

我已经在 localhost 上设置了 Faye,并且工作正常。

我现在正尝试使用 Cloud66 部署服务将它部署在 DigitalOcean VPS 上。要运行命令,我使用“after_rails”钩子。

rackup $RAILS_STACK_PATH/faye.ru -s thin -E production

这给了我错误:

部署期间出错:after_rails 挂钩期间出错:服务器:not_specified。无法运行命令:/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb: 36: require': cannot load such file -- faye (LoadError) from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:inin 来自 /var/deploy/anabol/web_head/current/faye.ru:1:in 的要求block in <main>' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:ininstance_eval' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in initialize' from /var/deploy/anabol/web_head/current/faye.ru:innew' 来自 /var/deploy/anabol/web_head/current /faye.ru:in <main>' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:ineval' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in new_from_string' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:40:inparse_file' 来自 /usr/local /lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:277:in build_app_and_options_from_config' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:199:inapp' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/ rack-1.5.2/lib/rack/server.rb:314:in wrapped_app' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:250:instart' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb :141:在start' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/bin/rackup:4:in' 来自 /usr/local/bin/rackup:23:in load' from /usr/local/bin/rackup:23:in'

github 仓库: https ://github.com/gwuix2/anabol

有什么建议可能是什么问题?不知道从哪里开始。

4

2 回答 2

4

我已经写了一些关于如何解决这个问题的文档,以防其他人遇到它。你可以在这里找到它:http: //community.cloud66.com/articles/faye-on-cloud-66

免责声明:我为 Cloud 66 工作。

于 2013-08-28T12:06:05.387 回答
3

Cloud 66 Support 解决了我的问题:

你好呀,

我们在自己的堆栈上运行 faye。我们实际上在 Thin 后面运行它 - 并将其作为堆栈上的一个进程进行监控。我们这样做的方式是使用四个文件 - 请参阅下面的详细信息:

1)RAILS_ROOT/.cloud66/deploy_hooks.yml

production:
before_rails:
- source: /.cloud66/files/add_thin_and_faye.sh
destination: ~/add_thin_and_faye.sh
target: rails
execute: true
sudo: true
apply_during: build_only
run_on: all_servers

2)RAILS_ROOT/.cloud66/files/add_thin_and_faye.sh

#!/bin/bash
sudo gem install thin --no-ri --no-rdoc
sudo gem install faye --no-ri --no-rdoc

3)RAILS_ROOT/Procfile

faye: thin -R $RAILS_STACK_PATH/faye/config.ru start

4)RAILS_ROOT/faye/config.ru

require 'faye'
faye_server = Faye::RackAdapter.new(:mount => '/your_faye_mount', :timeout => 45)
Faye::WebSocket.load_adapter('thin')
faye_server.listen(<<PUT-YOUR-PORT-HERE>>)

请注意,对于第 4 部分),设置当然会根据您的要求而有所不同。

如果您按照上面的设置,您将让 faye 与您的堆栈一起运行,并且它将作为您堆栈上的一个进程可用。

于 2013-08-16T09:19:56.923 回答