我已经切换了一个ruby应用程序(使用Thoth,它依次使用Ramaze)在一个rvm ruby @ gemset组合中使用bundler。我可以访问它的控制台版本,所以它很高兴它有什么宝石。但是,当我尝试通过服务器访问它时(通过nginx下的乘客)我从乘客那里得到了这个错误:
在任何来源中找不到activesupport-2.3.8(Bundler :: GemNotFound)
我不明白这一点,因为我在rvm的应用程序的gemset中安装了activesupport 2.3.8。也许乘客不知道rvm,或者知道使用正确的rvm?我不确定乘客如何挂钩我的应用程序,以及是否需要了解rvm。我见过的对乘客的唯一参考是在我的nginx配置块中,我说passenger_enabled on;
还有其他人有这种性质的问题吗?
最大
编辑:有关我的设置的更多详细信息:
我的应用已在/var/www/apps/akrotoski
这是一个名为ruby-1.8.7-p302@akrotoski
我刚想到这可能是nginx在root下运行的问题。如果我切换到root并执行echo $PATH
我得到
/opt/ruby-enterprise-1.8.7-2011.01/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
如果我的应用程序rvm中的echo $PATH
我
/home/deploy/.rvm/gems/ruby-1.8.7-p302@akrotoski/bin:/home/deploy/.rvm/gems/ruby-1.8.7-p302@global/bin:/home/deploy/.rvm/rubies/ruby-1.8.7-p302/bin:/home/deploy/.rvm/bin:/opt/ruby-enterprise-1.8.7-2011.01/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
所以也许nginx / passenger运行的方式是不使用rvm?就像我说的那样,我对乘客实际上是如何以这种方式挂钩而无知。
答案 0 :(得分:1)
您需要以root身份安装RVM,以便它是系统范围的安装,并且安装在/ usr / local / rvm中:
sudo bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
您可以阅读有关安装的更多here。此外,您需要确保您的默认rvm是启动nginx应用程序的正确rvm。例如,您可能希望执行以下操作:
sudo rvm --default 1.8.7@akrotoski
sudo /etc/init.d/nginx restart