我正在尝试使用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执行commande setfacl:
/usr/bin/env setfacl -Rn -m u:www-data:rwX -m u:me:rwX /var/www/project/shared/var
但Apache无法在var/cache
任何提示?
答案 0 :(得分:1)
在部署期间,您可能删除了var / cache文件夹。它可能会使用错误的权限进行重新创建。尝试也启动此任务:
/usr/bin/env setfacl -dRn -m u:www-data:rwX -m u:me:rwX /var/www/project/shared/var
-d表示“默认”,因此所有新文件和文件夹都将继承这些默认权限。
答案 1 :(得分:0)
我用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