Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何让Phusion乘客使用正确版本的Ruby?_Ruby On Rails_Ruby_Rvm_Passenger - Fatal编程技术网

Ruby on rails 如何让Phusion乘客使用正确版本的Ruby?

Ruby on rails 如何让Phusion乘客使用正确版本的Ruby?,ruby-on-rails,ruby,rvm,passenger,Ruby On Rails,Ruby,Rvm,Passenger,我的同事有一个Rails开发环境,使用Nginx、Phusion Passenger和RVM。当他试图加载一个项目时,it部门抱怨它需要一个不同于现有版本的Ruby: The given ruby environment requires ruby-1.9.2-p290 (versus ree-1.8.7-2011.03) (RVM::IncompatibleRubyError) 我们正在从REE切换到MRI Ruby。以下是我到目前为止检查的内容: 该目录中的.rvmrc是rvm use-

我的同事有一个Rails开发环境,使用Nginx、Phusion Passenger和RVM。当他试图加载一个项目时,it部门抱怨它需要一个不同于现有版本的Ruby:

The given ruby environment requires ruby-1.9.2-p290 (versus ree-1.8.7-2011.03) (RVM::IncompatibleRubyError)
我们正在从REE切换到MRI Ruby。以下是我到目前为止检查的内容:

  • 该目录中的
    .rvmrc
    rvm use--createdefault@ourapp
  • rvm列表默认值
    返回
    ruby-1.9.2-p290
  • 我们已经更改了目录并返回到目录中,它显示它正在使用1.9.2
  • 据我所知,nginx的配置文件正确地设置了
    passenger\u root
    passenger\u ruby
  • Passenger是用Ruby 1.9.2编译的

还有什么我遗漏的吗?

乘客必须使用特定版本的Ruby进行编译,并且从那时起就被锁定。您不能在RVM中切换它,而不同时运行
passenger-install-X-module
程序。

尝试阅读文档

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

这只会给您一个rvm实例,但它可以工作

对于多个RVM,我发现唯一可行的解决方案是使用Unicorn和反向代理来运行Unicorn进程。Unicorn可以正常扩展,是一个成熟的unix公民——我个人在生产中使用它

编辑-刚刚注意到乘客3对RVM更友好(如上面的文档所示),但是您仍然需要使用包装器


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

如果您真的想使用不同的rubies并尊重RVM,请使用apache+unicorn。为apache安装mod_代理和mod_重写模块,使用unicorn.conf设置unicorn_rails并运行“unicorn_rails-E production-D-c config/unicorn.conf”。这是假设您将unicorn的配置放在rails应用程序的config目录中。

很好,但我错了-Passenger是用Ruby 1.9.2编译的。更新的问题。这个问题是如此具体到他的设置,我怀疑这将是有用的任何其他人。因为我不能再删除这个,我投票决定关闭它,因为“太本地化了”。是的,但注释指向文档仍然有效:)链接更新指向新站点