Capistrano 和 Symfony3 的权限问题

Permission issues with Capistrano and Symfony3

我正在尝试使用 capistrano 部署我的 symfony 应用程序,但我遇到了权限问题...

这是我的 deploy.rb:

# config valid only for current version of Capistrano
lock "3.8.0"

set :application, "projetLavande-api"
set :repo_url, "git@bitbucket.org:me/project-api.git"

set :format, :pretty
set :log_level, :info


set :composer_install_flags, '--no-dev --optimize-autoloader'

set :file_permissions_users, ["www-data"]
set :file_permissions_paths, ["var"]

set :linked_dirs, ["var"]

before "deploy:updated", "deploy:set_permissions:acl"
after 'deploy:updated', 'symfony:cache:clear'

部署成功,capi执行命令setfacl:

/usr/bin/env setfacl -Rn -m u:www-data:rwX -m u:me:rwX /var/www/project/shared/var

但是Apache无法在var/cache

中创建目录

有什么建议吗?

在部署期间,您可能会删除 var/cache 文件夹。它可能会被错误的正确访问重新创建。也尝试启动此任务:

/usr/bin/env setfacl -dRn -m u:www-data:rwX -m u:me:rwX /var/www/project/shared/var

-d 表示 "default",因此所有新文件和文件夹都将继承这些默认权限。

编辑:http://symfony.com/doc/2.7/setup/file_permissions.html#using-acl-on-a-system-that-supports-setfacl-linux-bsd

我用 setfacl 解决了整个应用程序目录的问题,例如:

 $HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`

 $sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`myuser`:rwX /var/www/project
 $sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`myuser`:rwX /var/www/project