gpt4 book ai didi

linux - Symfony2 缓存重建 - 写权限失败

转载 作者:可可西里 更新时间:2023-11-01 11:49:39 25 4
gpt4 key购买 nike

问题来了

缓存存储在 app/cache 文件夹中。我目前在 dev 环境下工作,我的缓存存储在 app/cache/dev 文件夹中。当我使用 symfony 控制台命令清除缓存时出现问题:

php 应用程序/控制台缓存:清除

当我尝试加载我的项目localhost/symfony/dev_app.php时,我收到一个错误:

RuntimeException: 写入缓存文件失败

我已经安装了 setfacl 扩展,因为 Debian 不支持 chmod a+,这是我所做的:

首先,我检查了执行http请求时使用的是哪个用户:

ps aux | grep http

ahmed 7219 0.0 0.0 7552 884 pts/0 S+ 19:51 0:00 grep http

然后我通过执行清除了 app/cache 文件夹

rm -rf app/cache/*

下一步是:

setfacl -R -m d:u:ahmed:rwx,ahmed:rwx app/cache

据我了解,此命令为用户 ahmed 设置了对 app/cache 文件夹及其当前和新子文件夹和文件的默认权限。

在我的控制台中,我在 ahmed 用户下工作。

完成所有这些步骤后,我加载了 localhost/symfony/dev_app.php 并创建了缓存。然后

php app/console cache:clear

再次**ocalhost/symfony/dev_app.php* 创建新缓存。但是我仍然收到这个错误

RuntimeException:无法写入缓存文件“/var/www/local/symfony/app/cache/dev/classes.php”。

那我做错了什么?

这是 app/cache/dev 的 getfacl 列表

ahmed@ahmed:/var/www/local/symfony$ getfacl app/cache/dev
# file: app/cache/dev
# owner: root
# group: ahmed
# flags: -s-
user::rwx
user:ahmed:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:ahmed:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

最佳答案

Web 服务器组(可能是 www-data)需要能够写入缓存,您的用户也需要。您的用户 (ahmed) 应该是 www-data 组的成员(请注意,您必须重新登录才能使组成员身份生效)。在 app/cache 和 app/logs 上设置 setgid 位 (+s) 将确保您的用户在其中创建的文件和目录将维护 www 的组所有权-数据。取消注释 app_dev.php 中的 umask(0002) 行,这样由 www-data 创建的文件将保持组所有权,确保您的用户有0002 的 umask(在提示符下键入 umask 以查看,或 umask 0002 进行设置,并在登录时通过 google 获取有关设置的帮助)并确保您的权限类似于:

    drwxrwsr-x 13 user www-data 4096 2013-05-10 11:05 dev

当您的用户 ahmed 使用 +sahmed.www-data 拥有的目录中创建文件/目录时,您应该会发现它们也属于 ahmed.www-数据

关于linux - Symfony2 缓存重建 - 写权限失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16569893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com