0

我想用 nginx 为 rails 应用程序提供服务。我已经使用 rvm gemset 设置了我的 gem。根据让 nginx 加载我的 gemset 的说明,我制作了一个 config/setup_load_paths.rb 文件

if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
  begin
    rvm_path     = File.dirname(File.dirname(ENV['MY_RUBY_HOME']))
    rvm_lib_path = File.join(rvm_path, 'lib')
    puts rvm_lib_path.inspect
    $LOAD_PATH.unshift rvm_lib_path
    require 'rvm'
    RVM.use_from_path! File.dirname(File.dirname(__FILE__))
  rescue LoadError
    # RVM is unavailable at this point.
    raise "RVM ruby lib is currently unavailable."
  end
end

ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup' 

这似乎没有做到这一点。所以尝试调试时,我发现它ENV['MY_RUBY_HOME']实际上是 Nil,因此第一个代码块甚至没有运行。为什么这是零,我能做些什么来解决这个问题?

4

1 回答 1

0

您遵循旧的说明,再次访问https://rvm.io/integration/passenger/并使用正确的代码config/setup_load_paths.rb

if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
  begin
    gems_path = ENV['MY_RUBY_HOME'].split(/@/)[0].sub(/rubies/,'gems')
    ENV['GEM_PATH'] = "#{gems_path}:#{gems_path}@global"
    require 'rvm'
    RVM.use_from_path! File.dirname(File.dirname(__FILE__))
  rescue LoadError
    raise "RVM gem is currently unavailable."
  end
end

# If you're not using Bundler at all, remove lines bellow
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'
于 2012-11-11T08:17:39.737 回答