2013-06-25 60 views
0

我在使用capifony將symfony2應用程序部署到我的服務器時遇到問題。我試圖用git直接拖動到我的服務器,這是有效的。用Capifony部署Symfony2

這裏是我的deploy.rb文件

# Sylius default deployment configuration. 

# Capifony documentation: http://capifony.org 
# Capistrano documentation: https://github.com/capistrano/capistrano/wiki 

# Be more verbose by uncommenting the following line 
# logger.level = Logger::MAX_LEVEL 

set :application, "myapp" 
set :domain,  "xx.xx.xx.xx" 
set :deploy_to, "/home/user" 
set :user,  "user" 

role :web,  domain 
role :app,  domain 
role :db,   domain, :primary => true 

set :scm,   :git 
set :repository, "[email protected]:/var/www/user/user.git" 
set :branch,  "master" 
set :deploy_via, :remote_cache 

ssh_options[:forward_agent] = true 

set :use_composer, true 
set :update_vendors, true 

set :dump_assetic_assets, true 

set :writable_dirs,  ["app/cache", "app/logs"] 
set :webserver_user, "www-data" 
set :permission_method, :acl 

set :shared_files, ["app/config/parameters.yml", "web/.htaccess", "web/robots.txt"] 
set :shared_children, ["app/logs"] 

set :model_manager, "doctrine" 

set :use_sudo, false 

set :keep_releases, 3 


before 'symfony:composer:update', 'symfony:copy_vendors' 

namespace :symfony do 
    desc "Copy vendors from previous release" 
    task :copy_vendors, :except => { :no_release => true } do 
    if Capistrano::CLI.ui.agree("Do you want to copy last release vendor dir then do composer install ?: (y/N)") 
     capifony_pretty_print "--> Copying vendors from previous release" 

     run "cp -a #{previous_release}/vendor #{latest_release}/" 
     capifony_puts_ok 
    end 
    end 
end 

after "deploy:update", "deploy:cleanup" 
after "deploy", "deploy:set_permissions" 

,這裏是我的錯誤

failed: "sh -c 'if [ -d /home/user/shared/cached-copy ]; then cd /home/user/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard f90495dc7d5c62d1bc61415b5c10b762a7e96ee6 && git clean -q -d -x -f; else git clone -q -b master [email protected]:/var/www/user/user.git /home/user/shared/cached-copy && cd /home/user/shared/cached-copy && git checkout -q -b deploy f90495dc7d5c62d1bc61415b5c10b762a7e96ee6; fi'" on xxx.xxx.xxx.xxx 

我也試圖在我的服務器上直接通過SSH運行這個那個效果很好。

有什麼想法? thnx

+0

打開詳細的錯誤,並提供更詳細的錯誤消息。 ... sh,用戶權限,git fetch,git reset,git clean,git clone,git checkout ...所有可能的原因 – nifr

+0

現在我得到了這個: ** [xxx.xx.xx.xx :: err ]權限被拒絕,請重試。 ** [xxx.xx.xx.xx :: err]權限被拒絕,請重試。 ** [xxx.xx.xx.xx :: err]權限被拒絕(公鑰,密碼)。 ** [xxx.xx.xx.xx :: err]致命:遠程端意外掛斷 –

+0

您或者有錯誤的密碼或公鑰...這就是您的部署失敗的原因。 – nifr

回答

1

你似乎沒有設置你的SSH密碼。要麼把設置在deploy.rb(不推薦),或讓capifony問你吧:

#set :password, "password"    # the ssh password 
set(:password){ Capistrano::CLI.password_prompt("Type your SSH password for user \"#{user}\": ") } 

它更容易找到什麼導致您的部署,如果你在你的deploy.rb使用logger.level設置增加日誌詳細級別失敗。

# IMPORTANT = 0 
# INFO  = 1 
# DEBUG  = 2 
# TRACE  = 3 
# MAX_LEVEL = 3 
logger.level = Logger::MAX_LEVEL 

documentation

+0

是的,我做了,但現在我有這個: ** [xxx.xx.xx.xx :: err]權限被拒絕,請再試 ** [xxx.xx.xx.xx: :err] Permission denied,please try again。 ** [xxx.xx.xx.xx :: err]權限被拒絕(公鑰,密碼)。 ** [xxx.xx.xx.xx :: err]致命:遠端意外掛斷 –

+0

看到我對你的問題的評論。錯誤的密碼/ publickey ...仔細檢查您的憑據! – nifr

+0

好了,現在我有新的錯誤:) 命令git的LS-遠程[email protected]:/var/www/user/user.git HEAD返回的狀態代碼32768 –