这是问题所在。
缓存存储在app/cache文件夹中。我目前在开发环境下工作,我的缓存存储在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