我正在尝试使用 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