当前位置:  开发笔记 > 编程语言 > 正文

清除缓存时无法写入缓存文件"/var/www/myapp/app/cache/dev/classes.php"

如何解决《清除缓存时无法写入缓存文件"/var/www/myapp/app/cache/dev/classes.php"》经验,为你挑选了2个好方法。

我在Ubuntu 11.10上安装了Symfony 2.0.7.我有这个问题:

我使用以下命令更改了cachee logs目录的权限:

chmod 777 -R cache
chmod 777 -R logs

以及我期待的所有功能.

然后我做了:

app/console cache:clear

使用debug true清除dev环境的缓存

cache/dev的权限更改为755,symfony无法写入:

RuntimeException:无法写入缓存文件"/var/www/myapp/app/cache/dev/classes.php".

在/var/www/myapp/app/bootstrap.php.cache第1079行,ClassCollectionLoader :: writeCacheFile()在/var/www/myapp/app/bootstrap.php.cache第1017行,在ClassCollectionLoader :: load()中/在/var/www/myapp/web/app_dev.php第23行的内核 - > loadClassCache()中的var/www/myapp/app/bootstrap.php.cache第682行

如何在Symfony 2中解决这个明显的错误?



1> Elnur Abdurr..:

请参阅" 配置和设置"部分中的" 设置权限"旁注.使用ACL方法.setfacl

例如

sudo setfacl -R -m u:apache:rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:apache:rwX -m u:`whoami`:rwX app/cache app/logs

(apache你的HTTPD用户在哪里)


对我说它:setfacl:选项-m:字符3附近的参数无效

2> Federico Gal..:

好吧,我正在使用setfacl以避免这些问题,但我仍然遇到问题. 我正在处理标准用户目录,所以这对我不起作用:

APACHEUSER=`ps aux | grep -E '[a]pache|[h]ttpd' | grep -v root | head -1 | cut -d\  -f1`
sudo setfacl -R -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs

如果你也这样做:(作为特权用户,当然有必要)

sudo rm -rf app/cache app/logs

然后,当NORMAL用户创建两个目录,然后将以下命令应用为NORMAL用户(不带sudo):

exit (from root if necessary)
mkdir app/cache app/logs

APACHEUSER=`ps aux | grep -E '[a]pache|[h]ttpd' | grep -v root | head -1 | cut -d\  -f1`
setfacl -R -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
setfacl -dR -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs

注意:请记住,-d\和之间有两个空格-f1

祝好运!

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有