在rvm下运行ruby app的问题

我已经更换了一个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的rvm / gemset

我想到这可能是在root下运行的nginx的一个问题。 如果我切换到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? 就像我说的,我很不了解乘客如何以这种方式实际挂钩到应用程序。


您需要以root用户身份安装RVM,以便进行系统级安装,并将其安装在/ usr / local / rvm中:

sudo bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

您可以在这里阅读更多关于安装的信息。 另外,您需要确保您的默认rvm是启动nginx应用程序的正确选项。 例如,您可能想要执行以下操作:

sudo rvm --default 1.8.7@akrotoski
sudo /etc/init.d/nginx restart
链接地址: http://www.djcxy.com/p/32525.html

上一篇: Problem running ruby app under passenger with rvm

下一篇: Java logging framework which does not require LOGGER declaration on every class