Ruby on rails Phusion乘客处理多个RVM红宝石项目的问题
嘿,我已经在服务器上部署了我的一个Rails应用程序,使用了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
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_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。谢谢你的回答。将检查并接受它是否真的有用:)