【发布时间】:2012-09-24 23:04:56
【问题描述】:
我正在使用 MAMP 在本地开发一个 CakePHP 2.2 站点。每隔一段时间,我就会收到一个或多个与此类似的警告,关于无法写入一个或多个缓存文件:
Warning: SplFileInfo::openFile(/Applications/MAMP/htdocs/mywebsite/www/app/tmp/cache/persistent/myapp_cake_core_cake_console_en-au): failed to open stream: Permission denied in /Applications/MAMP/htdocs/mywebsite/www/lib/Cake/Cache/Engine/FileEngine.php on line 313
奇怪的是,/tmp 是 777,tmp/cache 是 777,而 tmp/cache/persistent 是 777(别担心……它不会是服务器上的 777!)。 tmp/cache/persistent 中的文件本身是 644 - 但我假设 Cake 正在创建和管理该文件,并且使用它需要的权限进行操作。
如果我只是刷新页面,错误就会消失(然后稍后会再次出现)。我没有做任何显式缓存,所以这些东西只是 Cake 自动做的事情。
所以我的问题是:
a) Cake 的自动缓存是如何工作的?它是否试图在每次页面刷新时写入该文件,并且偶尔会失败一次?还是它只是偶尔尝试写入该文件,但每次尝试都失败?
b) 如果它只是偶尔失败一次,我可以放心地忽略它吗?如果每次尝试都失败,我该如何解决?
提前感谢您的帮助!
【问题讨论】:
-
帮助不大,但我自己也遇到过几次。不幸的是,除了遇到它时运行
sudo chmod -R 777 app/tmp,还没有真正找到解决方法。 -
当我不小心 chown -R 0777 heh 时遇到了这个问题
标签: cakephp caching cakephp-2.2