清除缓存时使用umask设置权限

Posted

技术标签:

【中文标题】清除缓存时使用umask设置权限【英文标题】:Using umask to set permission when clearing cache 【发布时间】:2013-12-17 10:48:55 【问题描述】:

我不能使用ACL,所以我尝试将umask(0000)添加到我的VPS中的app/console和web/app.php,但是app/cache的权限又变成了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 文档没有阐明这一点?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

在生产环境中,您很可能只需要切换到 apache 用户。 从 Apache 用户运行此命令与将所有者设置为 Apache 有什么区别用户?我想没有任何区别。 这没什么区别,这些都是这样做的要求。您希望拥有 Apache 用户拥有的目录,以便您的应用程序正常运行,并且您希望从 Apache 用户运行命令,因为它们也只能以这种方式工作。至少我是这样处理这个问题的。

以上是关于清除缓存时使用umask设置权限的主要内容,如果未能解决你的问题,请参考以下文章

如何设置firefox缓存自动清理

shiro 退出 清除缓存

shiro 退出 清除缓存

Laravel 8 无法清除缓存。确保您具有适当的权限

怎么清除浏览器缓存 如何清除浏览器缓存方法

laravel 缓存清除有时不起作用