我正在尝试将 Rails 3.1 应用程序部署到运行 nginx-1.0.0 和 Passenger-3.0.7 的 Ubuntu 11.04 服务器
我有一个系统级 RVM 安装在/usr/local/rvm/gems/ruby-1.9.2-p180
我的 nginx.conf 如下所示:
http {
passenger_root /usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.7;
passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p180/ruby;
# ...
server {
listen 80;
server_name my-domain.com;
root /srv/www/my_project/current/public;
passenger_enabled on;
rails_env production;
}
}
问题是我的 Gemfile 中有两个指向 git repos 的 gem。Bundler 说它们已安装,它们存在于 RVM 的 gem 目录中,但 Passenger 抛出了一个错误:
[email protected]:my-gem (at master) is not checked out. Please run `bundle install` (Bundler::GitError)
rails console
从部署目录运行正常。我遗漏了什么?
答案1
更改部署脚本以使用bundle install --deployment
,该--deployment
选项将 gem 安装到vendor/bundle
系统目录中而不是系统中。