Capistrano mkdir 权限被拒绝
Posted
技术标签:
【中文标题】Capistrano mkdir 权限被拒绝【英文标题】:Capistrano mkdir permission denied 【发布时间】:2014-08-19 16:01:00 【问题描述】:当我运行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
一样显式启用它。
我看到了两种可能的解决方案:
-
在 Capistrano 中启用 sudo
在 Ubuntu 中启用 sudo
不幸的是,我不知道怎么做。
【问题讨论】:
【参考方案1】:这里有同样的错误,遵循GoRails“在 2019 年将 Ruby on Rails 部署到生产”的好教程,在那里他创建了一个用户“deploy”并设置在“home/deploy”中部署应用程序。 不要忘记您必须使用在服务器上创建的用户名。 所以部署的目录是“home/USERNAME”。
【讨论】:
请解释一下,因为链接可能有一天会失效。【参考方案2】:感谢 Bob Roberts。
我认为这应该是一个答案,因为它很容易错过您的评论。我知道我错过了几次。
sudo chown -R deploy:deploy /var/www/
或者你的用户名是什么
sudo chown -R username:username /var/www/
【讨论】:
【参考方案3】:默认情况下,Capistrano 3 部署到/var/www
,deploy
用户不可写。您需要使用以下命令将/var/www
的所有权更改为deploy
用户。
sudo chown deploy:deploy /var/www/
在此之后,您应该能够在没有权限错误的情况下部署您的应用程序。
【讨论】:
如果有人在使用 Amazon EC2sudo chown ec2-user:ec2-user /var/www/
您很可能需要使用 -R 以便所有子目录都归部署用户所有:sudo chown -R deploy:deploy /var/www/
以上是关于Capistrano mkdir 权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
升级到 macOS 10.12 (Sierra) 后,使用 Capistrano 部署代码时出现问题,“权限被拒绝(公钥)”。