当前位置:首页 > 操作系统 > Linux

linux – Symfony2缓存重新创建 – 写入权限失败

这是问题所在.

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

php app / console cache:清除

当我尝试加载我的项目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

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

在我的控制台中,我在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位将确保用户在其中创建的文件和目录将通过www-data维护组所有权.取消注释app_dev.php中的umask(0002)行,以便由www-data创建的文件将保持组所有权,确保您的用户具有0002的umask(在提示时键入umask,或者设置umask 0002,以及google for帮助在登录时设置此项并确保您的权限如下所示:

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

当您的用户ahmed在ahmed.www-data with s所拥有的目录中创建文件/目录时,您会发现它们也归ahmed.www-data所有.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐