【问题标题】:Capistrano configuration leading to mkdir permission deniedCapistrano 配置导致 mkdir 权限被拒绝
【发布时间】:2018-05-27 03:47:47
【问题描述】:

在对特定应用程序的服务器执行deploy 时,进程在此阶段中断

 DEBUG [88db4789] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.4" ; /usr/bin/env mkdir -p /var/www/v4/shared /var/www/v4/releases )

 DEBUG [88db4789]   mkdir:

 DEBUG [88db4789]   cannot create directory ‘/var/www’

 DEBUG [88db4789]   : Permission denied

注意:这只发生在这个特定的应用程序中。部署到同一服务器进程的另一个应用程序经过此阶段

我已尝试更改所有权 as suggested here,但失败了

chown: cannot access ‘/var/www/’: No such file or directory

所以我被引导相信配置问题是罪魁祸首。除了环境数据

server 'xx.xxx.xxx.xxx', user: 'deploy', roles: %w{db web app}

我错过了什么?

【问题讨论】:

    标签: ruby-on-rails capistrano


    【解决方案1】:

    您的服务器实例没有文件夹/var/www,因此您可以以用户deploy 手动通过ssh 到该服务器,然后尝试自己创建文件夹。

    我认为它会再次失败,因为您的deploy 用户没有/var 文件夹的权限。尝试按照您必须这样做的指南更改所有权。

    【讨论】:

      【解决方案2】:

      虽然 yeuem1vannam 的回答是有效的,但这个用例实际上在 deploy.rb 文件中存在不同的问题。那里指定的路径在用户名中有错误,因此在部署时创建文件夹的权限错误。

      【讨论】: