使用 Capistrano 将 PHP 应用程序部署到 Linode 时出现连接错误

使用 Capistrano 将 PHP 应用程序部署到 Linode 时出现连接错误

我正在尝试使用 Capistrano 将 PHP 应用程序部署到 Linode 服务器上。我已经安装了 Ruby 和 Capistrano,并配置了我的deploy.rb文件(可能不正确)。

但是,当我运行时,cap deploy收到此错误:

[deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: [email protected] (Net::SSH::AuthenticationFailed: myusername) connection failed for: [email protected] (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 "[email protected]", :app

我已经验证用户名和密码适用于 SSH(我已使用这些凭据从终端登录 SSH)。

有什么想法吗?任何帮助都将不胜感激!如果需要,我可以澄清问题 :)

答案1

问题可能是您已将 :user 设置为“root”,但随后您以“myusername”的身份通过 SSH 进入服务器。您正确地将 use_sudo 设置为 false,但应该有一个专门用于部署的用户。创建一个用户来部署应用程序,并确保 /srv/www/myproject.com/htdocs 由该用户拥有。您希望您的用户设置类似于:

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

server "[email protected]", :app

相关内容