简体   繁体   English

使用Capistrano从Windows到Linux将Rails App部署到VPS

[英]Deploying Rails App to a VPS using Capistrano from Windows to Linux

I'm trying to deploy my first rails application to a VPS. 我正在尝试将我的第一个Rails应用程序部署到VPS。 So far I have configured it all with ubuntu, postgresql, node, ruby etc and have run the cap deploy:setup command without errors. 到目前为止,我已经使用ubuntu,postgresql,node,ruby等对它们进行了全部配置,并已运行cap deploy:setup命令而没有错误。 When I try and run cap deploy:cold , I get an interesting bundler error which says it can't proceed because of a missing gem, even though it is in the gemfile. 当我尝试运行cap deploy:cold ,出现一个有趣的捆绑程序错误,该错误表明由于缺少gem,即使它在gemfile中,它也无法继续执行。 I am developing on Windows 7 so can't bundle with unicorn and have put this gem into a group in the gem file: 我正在Windows 7上进行开发,因此无法与独角兽捆绑在一起,并将此gem放入gem文件的组中:

group :production do
    if RUBY_PLATFORM =~ /win32/
      gem "pg", :platform => [:mswin, :mingw]
    else
      gem "pg", :platform => :ruby
      gem 'unicorn'
    end
end

This is some of the output I get when running cap deploy:cold : 这是运行cap deploy:cold时得到的一些输出:

    ?[2;37mcommand finished in 200ms?[0m
 ** transaction: commit
  * ?[32m2013-02-06 21:11:42 executing `deploy:migrate'?[0m
  * ?[33mexecuting "cd /home/deployer/apps/blog/releases/20130206211131 && bundl
e exec rake RAILS_ENV=production  db:migrate"?[0m
    servers: ["176.58.109.176"]
    [176.58.109.176] executing command
 ** [out :: 176.58.109.176] rake aborted!
 ** [out :: 176.58.109.176] Please install the postgresql adapter: `gem install
activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfil
e.)
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activerecord-3.2.11/lib/active_record/connection_adapters/postgresql_adapter.
rb:7:in `<top (required)>'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `block in requ
ire'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activesupport-3.2.11/lib/active_support/dependencies.rb:236:in `load_dependen
cy'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection
_specification.rb:50:in `resolve_hash_connection'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection
_specification.rb:41:in `resolve_string_connection'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection
_specification.rb:25:in `spec'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection
_specification.rb:130:in `establish_connection'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activerecord-3.2.11/lib/active_record/railtie.rb:82:in `block (2 levels) in <
class:Railtie>'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:36:in `instance_ev
al'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:36:in `execute_hoo
k'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:43:in `block in ru
n_load_hooks'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:42:in `each'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activesupport-3.2.11/lib/active_support/lazy_load_hooks.rb:42:in `run_load_ho
oks'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activerecord-3.2.11/lib/active_record/base.rb:720:in `<top (required)>'
 ** [out :: 176.58.109.176] /home/deployer/apps/blog/shared/bundle/ruby/1.9.1/ge
ms/activerecord-3.2.11/lib/active_record/railties/databases.rake:25:in `block (2
 levels) in <top (required)>'
 ** [out :: 176.58.109.176] Tasks: TOP => db:migrate => db:load_config
 ** [out :: 176.58.109.176] (See full trace by running task with --trace)
    ?[2;37mcommand finished in 2926ms?[0m
failed: "sh -c 'cd /home/deployer/apps/blog/releases/20130206211131 && bundle ex
ec rake RAILS_ENV=production  db:migrate'" on 176.58.109.176

Any help greatly appreciated, after solid days of trying I'm ready to give up! 经过一整天的尝试,我准备放弃! Many many thanks. 非常感谢。

In your Gemfile : 在您的Gemfile

group :production do 
  gem 'pg'
  gem 'unicorn'
end

Remove :platform => :ruby . 删除:platform => :ruby

EDIT : try to specify the environment on the server : 编辑:尝试指定服务器上的环境:

export RAILS_ENV=production

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM