我无法使用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 用户。