我已经在localhost上设置了Faye,并且工作正常。
我现在正尝试使用Cloud66部署服务在DigitalOcean VPS上部署它。 要运行该命令,我使用“after_rails”钩子。
rackup $ RAILS_STACK_PATH / faye.ru -s thin -E production
这给了我错误:
部署期间出错:after_rails hook期间出错:服务器:not_specified。无法运行命令:/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- faye (LoadError) from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in
require'from / var / deploy / anabol / web_head / current / faye。 ru:1:在block in <main>' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in
instance_eval'中来自/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in {{1来自/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5的来自/var/deploy/anabol/web_head/current/faye.ru:in initialize' from /var/deploy/anabol/web_head/current/faye.ru:in
eval'的新内容。 2 / lib / rack / builder.rb:49:来自/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server的<main>' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in
parse_file'。 rb:277:来自/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:314:in {{1} new_from_string' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:40:in
app'从/ usr / local开始'from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:141: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:in
' / bin / rackup:23:wrapped_app' from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:250:in
'
github repo: https://github.com/gwuix2/anabol
有什么建议可能是什么问题?不知道从哪里开始。
答案 0 :(得分:4)
我已经写了一些关于如何解决这个问题的文档,以防其他人遇到它。您可以在此处找到它:http://community.cloud66.com/articles/faye-on-cloud-66
免责声明:我为Cloud 66工作。
答案 1 :(得分:3)
Cloud 66支持解决了我的问题:
你好,
我们在自己的堆栈上运行faye。我们实际上在瘦身后运行它 - 并将其作为堆栈中的进程进行监视。我们这样做的方式是四个文件 - 请参阅下面的详细信息:
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部分,设置将根据您的要求而有所不同。
如果你按照上面的设置进行操作,你就可以在你的堆栈旁边运行它,它将作为你的堆栈中的一个进程提供。