![](/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.