我有一台安装了 nginx 和 Passenger 的 Ubuntu 服务器 (10.04)。我已在其上安装了 RVM,并且我有一个安装了 Passenger 3.02 的全局 gemset。我的应用程序位于另一个安装了 rails 等的 gemset 中。当我配置 nginx 来为应用程序提供服务时,我收到一条错误消息,提示 Bundler 找不到该 gem。
在任何来源中都找不到 abstract-1.0.0(Bundler::GemNotFound)
运行 rvm info 我看到以下内容:
environment:
PATH: "/home/richard/.rvm/gems/[email protected]/bin:/home/richard/.rvm/gems/ree-1.8.7-2010.02@global/bin:/home/richard/.rvm/rubies/ree-1.8.7-2010.02/bin:/home/richard/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
GEM_HOME: "/home/richard/.rvm/gems/ree-1.8.7-2010.02@richarddowden"
GEM_PATH: "/home/richard/.rvm/gems/ree-1.8.7-2010.02@richarddowden:/home/richard/.rvm/gems/ree-1.8.7-2010.02@global"
MY_RUBY_HOME: "/home/richard/.rvm/rubies/ree-1.8.7-2010.02"
IRBRC: "/home/richard/.rvm/rubies/ree-1.8.7-2010.02/.irbrc"
RUBYOPT: ""
gemset: "richarddowden"
在我的(全局)nginx conf文件中,有以下内容:
http {
passenger_root /home/richard/.rvm/gems/ree-1.8.7-2010.02@global/gems/passenger-3.0.2;
passenger_ruby /home/richard/.rvm/wrappers/ree-1.8.7-2010.02@global/ruby;
我做错了什么蠢事?我需要在应用程序的 nginx 配置文件中复制 Passenger_ruby 变量吗?
谢谢,理查德
答案1
手掌 -> 脸部...
http://dalibornasevic.com/posts/21-rvm-and-passenger-setup-for-rails-2-and-rails-3-apps
&
http://rvm.beginrescueend.com/integration/passenger/
不过,仍然希望在未来的版本中这两者能够更紧密地集成。对于新手来说,使用 Rails(Heroku 之外)进行部署仍然很棘手。