2012-09-30 59 views
3

運行時cap deploy可以創建一些文件夾,如版本共享。它們和Apache或Nginx的服務器根之間有什麼關係?如何在Apache或Nginx上使用Capistrano?

這是方法嗎?(這是一個Nginx的配置)

server { 
    listen 80; 
    server_name www.yourhost.com; 
    root /releases/...; # Which path to be here??? 
    passenger_enabled on; 
} 

而且也運行cap deploy,可以通過Web服務器自動重啓後?

+0

這裏至少有三個問題。請再次嘗試一個更具體的問題,並給出一些你已經嘗試了什麼以及它是如何工作的。 – noodl

+0

我不知道它們是如何工作的。可以告訴我如何配置nginx的配置文件嗎?我的問題不清楚? – superlove5777

回答

7

部署時,capistrano會在releases文件夾中創建一個文件夾,然後將該文件夾符號鏈接到/your_app/current

既然你暴露給公衆的Rails應用程序的部分是public文件夾,你需要在你的nginx的配置設置根:

root /path_to_your_app/current/public; 

對於每個部署的current的內容,將有效從源代碼刷新,任何未提交到源代碼管理控件的數據都將丟失,這就是共享文件夾進入的地方。共享文件夾將包含那些不在版本控制中的東西,但你不會每個部署都不想失去 - 應用程序日誌,上傳的圖像等。

下面是如何使用上傳共享文件夾一個很好的例子:http://www.simonecarletti.com/blog/2009/02/capistrano-uploads-folder/

重新啓動Web服務器可以在您的deploy.rb以下任務來實現:

namespace :deploy do 
    task :restart do 
    run "touch #{current_path}/tmp/restart.txt" 
    end 
end 

的Phusion客運監控此文件,並在創建時觸發重啓。

+0

非常感謝! – superlove5777

+0

不是問題:) –

相關問題