1

我正在努力让乘客+rvm+apache+rails 工作。打开页面时,我从乘客那里收到以下错误消息:


Ruby (Rack) 应用程序无法启动
这些是可能的原因:
应用程序代码中可能存在语法错误。请检查此类错误并修复它们。
可能未安装所需的库。请安装此应用程序所需的所有库。
应用程序可能未正确配置。请检查所有配置文件是否正确写入,修复任何不正确的配置,然后重新启动该应用程序。
应用程序依赖的服务(例如数据库服务器或 Ferret 搜索引擎服务器)可能尚未启动。请启动该服务。
有关错误的更多信息可能已写入应用程序的日志文件。请检查它以便分析问题。

错误信息:
未初始化的常量 Capistrano
异常类:
名称错误
应用程序根:
/var/www/www.pixtur.org/rails/current
回溯:
    文件行位置
0 /var/www/www.------------.----/rails/shared/bundle/ruby/1.9.1/gems/rvm-capistrano-1.2.0/lib/ rvm/capistrano.rb 3 in `'
1 /home/pixtur/.rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.1.3/lib/bundler/runtime.rb 74 在“要求”
2 /home/pixtur/.rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.1.3/lib/bundler/runtime.rb 74 在“rescue in block in require”
3 /home/pixtur/.rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.1.3/lib/bundler/runtime.rb 62 在`block in require'
4 /home/pixtur/.rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.1.3/lib/bundler/runtime.rb 55 在“每个”
5 /home/pixtur/.rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.1.3/lib/bundler/runtime.rb 55 在“要求”
6 /home/pixtur/.rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.1.3/lib/bundler.rb 119 在“要求”

我不明白,这个错误消息试图告诉我什么。令人困惑的是,它似乎指的是 ruby​​-1.9.1,而 rvm 应该映射到 1.9.2-p180。

欢迎任何帮助、指示或后续步骤来找到我们的更多信息。

$GEM_PATH

在远程机器上使用 ssh: $echo $GEM_PATH /home/pixtur/.rvm/gems/ruby-1.9.2-p180@pixtur-org:/home/pixtur/.rvm/gems/ruby-1.9.2-p180@全球的

当前部署.rb

require "bundler/capistrano"

set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"") # Read from local system

# Load RVM's capistrano plugin:
require "rvm/capistrano"

set :user, 'pixtur'
set :domain, 'www.--------------.com'
set :applicationdir, "/var/www/www.somedomain.com/rails"

set :scm, 'git'
set :repository,  "gitosis@------------------.git"
#set :git_enable_submodules, 1 # if you have vendored rails
set :branch, 'master'
set :git_shallow_clone, 1
set :scm_verbose, true

set :deploy_to, applicationdir
set :use_sudo, false

#set :scm, :git
role :app, domain
role :web, domain
role :db,  domain, :primary => true

# additional settings
default_run_options[:pty] = true  # Forgo errors when deploying from windows

namespace :deploy do
  task :start, :roles => :app do
    run "touch #{current_release}/tmp/restart.txt"
  end

  task :stop, :roles => :app do
  end

  task :restart, :roles => :app do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end

  desc "Install bundler"
  task :bundle_install do
    begin
      run "bundle install"
    rescue
      gem_install_bundler
    end
  end  

end

.bundle/配置

---
BUNDLE_FROZEN: '1'
BUNDLE_PATH: /var/www/www.----------.---/rails/shared/bundle
BUNDLE_DISABLE_SHARED_GEMS: '1'
BUNDLE_WITHOUT: development:test

.rvmrc

if [[ -s "/Users/pixtur/.rvm/environments/ruby-1.9.2-p180@pixtur-org" ]] ; then
  . "/Users/pixtur/.rvm/environments/ruby-1.9.2-p180@pixtur-org"
else
  rvm --create use  "ruby-1.9.2-p180@pixtur-org"
4

1 回答 1

0

问题来自您的 Gemfile,

1)您需要移动gem 'rvm-capistrano'到开发组 - 这样它就不会安装到shared/bundle.

2)你是否有机会使用gem 'rvm-capistrano', :lib => 'rvm/capistrano',lib部分不是必需的,实际上很可能它正在破坏东西。

在再次部署之前,您应该清除shared/bundle服务器上的。

于 2012-05-23T00:08:47.327 回答