Capistrano mkdir的许可被否认

时间:2014-06-28 20:09:41

标签: ubuntu deployment capistrano sudo vps

当我运行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那样明确启用它。

我看到两种可能的解决方案:

  1. 在Capistrano中启用sudo
  2. 在Ubuntu中启用sudo
  3. 不幸的是,我不知道如何做到这两件事。

3 个答案:

答案 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”。