当我运行cap production deploy
时,我得到cannot create directory ‘/var/www/application/repo’: Permission denied
。
到目前为止,我已经创建了部署用户:
adduser deploy
adduser deploy sudo
我在Capistrano中使用此用户。
确实,当我登录deploy@my.vps.ip
时,默认情况下我没有sudo
权限,每次我需要像sudo su
那样明确启用它。
我看到两种可能的解决方案:
不幸的是,我不知道如何做到这两件事。
答案 0 :(得分:37)
默认情况下,Capistrano 3部署到/var/www
deploy
用户无法写入的/var/www
。您需要使用以下命令将deploy
的所有权更改为sudo chown deploy:deploy /var/www/
用户。
{{1}}
在此之后,您应该可以在没有权限错误的情况下部署您的应用。
答案 1 :(得分:2)
归功于Bob Roberts。
我认为这应该是一个答案,因为很容易错过你的评论。我知道我错过了几次。
sudo chown -R deploy:deploy /var/www/
或您的用户名
sudo chown -R username:username /var/www/
答案 2 :(得分:0)
在遵循GoRails“将Ruby on Rails部署到2019年投入生产”的优秀教程中,他在这里遇到了相同的错误,在该教程中,他创建了一个用户“ deploy”,并设置为在“ home / deploy”中部署该应用程序。 不要忘记您必须使用在服务器上创建的用户名。 因此,deploy的目录为“ home / USERNAME”。