ruby-on-rails - 如何让 Phusion Passenger 使用正确版本的 Ruby?

标签 ruby-on-rails ruby rvm passenger

<分区>

我的同事有一个使用 Nginx、Phusion Passenger 和 RVM 的 Rails 开发环境。当他尝试加载一个项目时,它提示说它需要一个与可用版本不同的 Ruby 版本:

The given ruby environment requires ruby-1.9.2-p290 (versus ree-1.8.7-2011.03) (RVM::IncompatibleRubyError)

我们正在从 REE 切换到 MRI Ruby。到目前为止,这是我检查过的内容:

    该目录中的
  • .rvmrcrvm use --create default@ourapp
  • rvm list default 返回 ruby-1.9.2-p290
  • 我们已经更改并返回目录,看到它说它正在使用 1.9.2
  • 据我所知,nginx 的配置文件正确设置了 passenger_rootpassenger_ruby
  • Passenger 已使用 Ruby 1.9.2 编译。

还有什么我想念的吗?

最佳答案

尝试阅读文档?

https://www.phusionpassenger.com/documentation_and_support#documentation

您通过为 rvm 命令指定 --passenger 来使用包装器,并告诉 Apache 或 Nginx 使用它生成的包装器。 Ruby 不是“编译在”中。

这只会给你一个 rvm 实例,但它会工作。

对于多个 RVM,我发现唯一可行的解​​决方案是对正在运行的 unicorn 进程使用 Unicorn 和反向代理。 Unicorn 可以适当扩展并且是一个成熟的 Unix 公民 - 这是我个人用于生产的东西。

编辑 - 刚刚注意到 Passenger 3 对 RVM 更友好(如上面的文档中所述) - 但你仍然必须针对包装器运行。

在 Mac 上,对于开发人员,37 Signals 有一个名为 POW 的替代方案,可以轻松配置开发环境。

关于ruby-on-rails - 如何让 Phusion Passenger 使用正确版本的 Ruby?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8297517/

相关文章:

ruby-on-rails - 如何设置本地 SSL 证书和 Rails 应用程序?

ruby - 我如何将 Nokogiri XML Builder 与单词 "text"字段一起使用?

ruby-on-rails-3 - RVM在gemset中查看 gem

ruby - 为特定目录 (RVM) 设置默认的 Ruby 版本

ruby - RVM 安装和权限问题

ruby-on-rails - rake 数据库 :migrate issue postgresql

ruby-on-rails - 特征未注册 : attribute name

ruby-on-rails - 任何来源中的 Rails : Could not find minitest-4. 7.5

ruby - 如何突出显示 if else 以atom/sublime结尾?

ruby-on-rails - 雪豹+ cucumber /webrat/rspec