0

我正在尝试使用 Capistrano 在服务器上部署我的应用程序。我运行了 deploy:setup 和 deploy:check 成功。

deploy:update 的一些任务成功通过,但deploy:asset:precompile任务似乎使 ruby​​ 崩溃。

我试图了解错误的原因:问题似乎与Rails Asset Pipelinepostgresql_adapter有关。

我有点迷茫,因为我对资产管道不太了解。我至少知道资产管道与 javascript 和 CSS 样式表有关,所以我不明白 postgresql_adapter 在这里做什么?

这些是我的(服务器和工作站)版本:

  • 导轨 3.2.8
  • RVM 1.16.17
  • 宝石 1.8.24
  • 捆绑器 1.2.1
  • pg 宝石 0.14.1

我还尝试在服务器上运行 commande bundle exec rake assets:precompile,结果是一样的。所以问题与这个命令有关。

这是我得到的错误的摘要:

  * 2012-11-09 16:54:21 executing `deploy:assets:precompile'
  * executing "cd /var/www/opf/releases/20121109155419 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
    servers: ["192.168.5.200"]
    [192.168.5.200] executing command
 ** [out :: 192.168.5.200] /var/www/opf/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213: [BUG] Segmentation fault
 ** [out :: 192.168.5.200] ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

无论如何,这是我的 config/deploy.rb :

require 'bundler/capistrano'
require File.join(File.dirname(__FILE__), 'deploy') + '/capistrano_database'

set :rvm_type, :system

set :rvm_ruby_string, 'ruby-1.9.3-p194@rail3dev20120606'
require 'rvm/capistrano'

set :application, 'opf'
set :deploy_to, '/var/www/opf'
set :rails_env, 'production'
set :user, 'the_user'
set :use_sudo, false

set :group_writable, false
set :scm, :git
set :repository,  'git@github.com:user/opf.git'
set :branch, 'master'

default_run_options[:pty] = true

set :deploy_via, :remote_cache

server '192.168.5.200', :web, :app, :db, :primary => true

# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end
end

非常欢迎帮助,因为我不知道在哪里看。谢谢

4

1 回答 1

0

我终于找到了解决方案!

首先知道 PhusionPassenger 显示的错误消息:

Passenger encountered the following error:
The application spawner server exited unexpectedly: Unexpected end-of-file detected.

Exception class:
    PhusionPassenger::Rack::ApplicationSpawner::Error

与宝石无关,但通常情况下可能如此处所述

你可以在这里找到我的解决方案。

于 2013-03-27T10:54:28.023 回答