繁体   English   中英

无法使用Capistrano和RVM访问部署在Passenger上的应用程序的Rails控制台

[英]Can't access Rails console for app deployed on Passenger using Capistrano & RVM

在最终设法使我的Rails应用程序正常工作之后,我遇到了一个有点令人困惑的问题。 我已经将我的Rails 3.0.5应用程序部署到带有Capistrano,RVM和Nginx的Ubuntu 10.10服务器上。 一切正常,我可以确认Rails正在工作,因为我从数据库获取数据和有意义的日志消息。

问题是在服务器上,我无法访问控制台。 当我尝试

rails c

它说“程序'rails'目前尚未安装。要运行'rails',请让管理员安装包'rails'”

但是它安装,否则我的应用程序将无法正常工作! 我只安装了两个RVM gemsets,全局一个和一个叫做“rails305”。

rvm gemset use rails305

然后

gem list

没有显示我的应用程序需要的任何宝石,但必须安装它们,因为1)没有它们的应用程序将无法工作2)在我的Capistrano部署脚本中,bundler安装它们(到那个gemset)。 所以这个问题显然与RVM有关,但我无法弄清楚它是什么......任何想法?

看起来Capistrano使用捆绑器,所以你可能想试试

bundle exec rails c

从部署目录。

有关更多信息,请参阅Bundler部署页面

默认情况下,Bundler在通过capistrano部署时不会将gem安装到默认的rvm环境中,而是安装到“shared / bundle”目录,以尝试适应不使用RVM的生产安装环境。 如果您正在生产中使用RVM,并希望将Bundler安装到您的默认ruby / gemset(如果您要登录生产,运行rake脚本,控制台等,这非常有用),请添加以下选项到你的config/deploy.rb

set :bundle_dir, ""
set :bundle_flags, ""

这将删除“ - deploy”(和“--quiet”,您可能想要或不想保留)和--path标志,这会导致bundler尝试将所有内容很好地打包,因此bundler现在将安装到用户的RVM环境; 使您的服务器环境更像您的开发环境(根据您的需求可能是好的还是坏的)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM