Ruby on rails Phusion乘客处理多个RVM红宝石项目的问题

Ruby on rails Phusion乘客处理多个RVM红宝石项目的问题,ruby-on-rails,ruby,ruby-on-rails-3,apache,passenger,Ruby On Rails,Ruby,Ruby On Rails 3,Apache,Passenger,嘿,我已经在服务器上部署了我的一个Rails应用程序,使用了phusion Passenger(4.0.20)和Rails 3.0.3以及RubyRuby-1.8.7-p374。在同一个系统中,我们还使用其他rails和Ruby版本管理其他rails项目。我们正在使用RVM管理红宝石 执行rvm列表显示: rvm rubies ruby-1.8.7-p371 [ x86_64 ] =* ruby-1.8.7-p374 [ x86_64 ] ruby-2.0.0-p353 [ x86

嘿,我已经在服务器上部署了我的一个Rails应用程序,使用了
phusion Passenger(4.0.20)
Rails 3.0.3
以及Ruby
Ruby-1.8.7-p374
。在同一个系统中,我们还使用其他rails和Ruby版本管理其他rails项目。我们正在使用
RVM
管理红宝石

执行rvm列表显示:

rvm rubies

   ruby-1.8.7-p371 [ x86_64 ]
=* ruby-1.8.7-p374 [ x86_64 ]
   ruby-2.0.0-p353 [ x86_64 ]
   ruby-2.0.0-p451 [ x86_64 ]
   ruby-2.1.0 [ x86_64 ]
   ruby-2.1.1 [ x86_64 ]

# => - current
# =* - current && default
#  * - default
运行时遇到问题的项目是使用
ruby-1.8.7-p374
Rails 3.0.3
。现在,当我获取URL时,它显示了下面给定的错误。

重新启动apache,重新启动passenger,但是我们在安装用于管理另一个Rails应用程序的ruby-2.0.0-p451时遇到了问题


原因可能是什么?请帮助:)

项目目录中是否有.ruby版本?您的项目正在尝试加载
ruby-2.0.0-p451
而不是
ruby-1.8.7-p374

在您的项目目录中有一个.ruby版本和您想要的设置版本,即,
ruby-1.8.7-p374
,然后再试一次


转到项目目录,逐个运行以下命令:

rvm use ruby-1.8.7-p374
gem install bundler passenger
rvm passenger-install-apache2-module
这将与Apache模块一起安装passenger,这意味着您将被要求向
/etc/apache2/apache2.conf添加一些配置更改,并按原样执行

/etc/apache2/sites available/
中为您的站点(如“www.virtualx.com”)创建一个文件,并插入以下内容:

<VirtualHost *>
    # Change these 3 lines to suit your project
    RailsEnv production
    ServerName www.virtualx.com
    DocumentRoot /var/www/my_project/public # Note the 'public' directory
</VirtualHost> 

#更改这3行以适合您的项目
RailsEnv生产
服务器名www.virtualx.com
DocumentRoot/var/www/my_project/public#注意“public”目录
并将
PassengerRuby
选项设置为
ruby-1.8.7-p374

重新启动Apache服务。你们都做完了

现在它可以工作了

如果需要多个ruby版本同时用于不同的项目,请参阅

希望有帮助:)

我在这里看到两个问题:

  • Phusion乘客正在尝试使用/usr/local/rvm/gems/ruby-2.0.0-p451作为运行应用程序的ruby解释器。但是/usr/local/rvm/gems/ruby-2.0.0-p451是一个目录,而不是一个可执行文件!此外,您打算在ruby-1.8.7-p374而不是ruby-2.0.0-p451下运行应用程序。这意味着您没有正确设置Passengeruby选项。阅读以了解如何正确设置。手册中甚至有一节专门介绍如何在使用RVM时执行此操作
  • 正如您在“用户和组”下看到的,Phusion乘客正试图以“无人”用户的身份执行您的应用程序。这可能不是你想要的!用于更改执行应用程序的用户

  • 另一方面,您应该升级到Phusion Passenger的最新版本4.0.41,以获得最新的bug修复。

    您确定您的用户可以访问
    rvm
    ?是的,我已经使用
    rvm fix permissions
    对其进行了修复。当我从项目目录运行
    ruby-v
    时,它清楚地表明它正在使用
    ruby-1.8.7-p374
    。所以,事实并非如此。无论如何,谢谢你的回复。你是单独运行passenger还是与nginx一起运行?你可以看到标签,我正在使用apache模块运行passenger。很抱歉,我错过了它。以前也报告过类似的问题。我知道。我已经检查了大部分可用的参考资料,然后只有我试着这样发布。谢谢:)没有必要在不同的RVM Ruby或不同的gemset下重新安装Phusion Passenger。您可以使用任何RVM Ruby和任何gemset安装Phusion Passenger,只要配置正确,结果将适用于任何其他RVM Ruby/gemset。谢谢你的回答。将检查并接受它是否真的有用:)