2013-03-07 51 views
1

我有一個使用虛擬Ubuntu服務器,Apache,Passenger和Capistrano的Rails應用程序。Capistrano部署使用Passenger不改變版本

我第一次在部署應用程式與Capistrano的我已成立乘客選擇使用此代碼在httpd.conf文件中首次發佈:

<VirtualHost *:80> 
    ServerName ndeavor.ameipro.com 
    DocumentRoot /opt/bitnami/projects/ndeavor/releases/20130306192753/public 
<Directory /opt/bitnami/projects/ndeavor/releases/20130306192753/public> 
    Allow from all 
    Options -MultiViews 
</Directory> 
</VirtualHost> 

這開始了我的Rails應用程序的正確的第一個版本。

現在,當我Cap Deploy時,我想讓Capistrano自動讓Passenger發佈新版本。

所以,我註釋掉在deploy.rb

# If you are using Passenger mod_rails uncomment this: 
    namespace :deploy do 
    task :start do ; end 
    task :stop do ; end 
    task :restart, :roles => :app, :except => { :no_release => true } do 
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}" 
    end 
end 

這些線的新版本沒有啓動。我應該從https.conf文件中刪除VirtualHost條目嗎?有沒有我失蹤的一些步驟?

謝謝!

回答

1

使用Capistrano進行部署時,版本目錄中會有一個名爲current的符號鏈接。你的文檔根目錄應該指向myapp/releases/current/public的公共目錄。然後,Capistrano更新每個部署的符號鏈接以指向最新版本。

+0

感謝您的幫助!我做了修改並重新啓動了Apache。但是,現在我得到了Forbidden 您無權訪問此服務器上的/ home/index。 – Reddirt 2013-03-07 22:33:03

+0

什麼是/ home/index?您的httpd.conf文件應包含文檔根目錄的/ opt/bitnami/projects/ndeavor/current/public。不確定/ home/index來自 – jxpx777 2013-03-07 22:36:02

+0

我修正了它 - https.conf中有另一行需要myapp/releases/current/public。它是#這應該更改爲您設置DocumentRoot的任何內容。 # <目錄「/ opt/bitnami/projects/ndeavor/current/public」> – Reddirt 2013-03-07 22:39:03