![](/img/trans.png)
[英]Rails app deployed on Centos w/ standalone Passenger and Capistrano can't access ENV variables
[英]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有关,但我无法弄清楚它是什么......任何想法?
默认情况下,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.