Linux

使用 Capistrano 將 PHP 應用程序部署到 Linode 時出現連接錯誤

  • September 10, 2013

我正在嘗試使用 Capistrano 將 PHP 應用程序部署到 Linode 伺服器上。我已經安裝了 Ruby 和 Capistrano,並配置了我的deploy.rb文件(可能不正確)。

但是,當我執行時,cap deploy我收到此錯誤:

[deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: myusername@lish-atlanta.linode.com (Net::SSH::AuthenticationFailed: myusername) connection failed for: myusername@lish-atlanta.linode.com (Net::SSH::AuthenticationFailed: myusername)

這是我的deploy.rb文件:

set :application, "App name"
set :repository,  "https://github.com/MyProject/Main.git"
set :user, "root"
set :password, "sshpassword"
set :scm, :git
set :deploy_to, "/srv/www/myproject.com/htdocs"

set :deploy_via, :remote_cache
set :use_sudo, false
set :copy_exclude, [".git", ".DS_Store", ".gitignore", ".gitmodules", "Capfile", "config/deploy.rb"]

set :ssh_options, {:forward_agent => true}

server "myusername@lish-atlanta.linode.com", :app

我已經驗證了 SSH 的使用者名和密碼是否有效(我已經使用這些憑據從終端登錄了 SSH)。

有任何想法嗎?任何幫助將不勝感激!如果需要,我可以澄清這個問題:)

問題可能是您已將 :user 設置為“root”,但隨後您將 SSH 設置為“myusername”。您將 use_sudo 設置為 false 是正確的,但應該有一個專門用於部署的使用者。創建一個使用者來部署應用程序並確保 /srv/www/myproject.com/htdocs 歸該使用者所有。您希望您的使用者設置類似於:

set :user, "deployer"
set :group, "deployer"
set :password, "sshpassword"

server "deployer@lish-atlanta.linode.com", :app

引用自:https://serverfault.com/questions/537885