清除缓存时使用掩码设置权限


Using umask to set permission when clearing cache

我无法使用ACL,所以我尝试将umask(0000)添加到我的VPS中的应用程序/控制台和web/app.php,但是当我清除缓存时,应用程序/缓存的权限再次变为0755,所有者组为myFTPUser,因此我的站点会抛出错误,直到我再次将权限更改为0775并将组所有者更改为www-data

php app/console cache:clear --env=prod --no-debug
chown -R myFTPUser:www-data app/cache/
find app/cache/ -type d | xargs chmod -R 0775
find app/cache/* -type f | xargs chmod -R 0664

我发现的唯一方法是在清除缓存之前将用户更改为Apache用户,而无需更改umask

su www-data
php app/console cache:clear --env=prod --no-debug

现在它无需执行任何其他操作即可正常工作。但是,这是正确的方法吗?为什么Symfony2文档没有澄清这一点?

您必须从 apache 用户运行此命令。

如果这是一个开发环境,那么将用户设置为您自己的用户并不是一件坏事。但是,在生产环境中,您很可能只需要切换到 apache 用户。