簡體   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