Capistrano和Symfony3

时间:2017-03-16 16:41:27

标签: apache symfony capistrano

我正在尝试使用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

中创建目录

任何提示?

2 个答案:

答案 0 :(得分:1)

在部署期间,您可能删除了var / cache文件夹。它可能会使用错误的权限进行重新创建。尝试也启动此任务:

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

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

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

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