我正在使用 CakePHP 2.0 RC-1。从 SVN checkout 项目后,应用程序开始提示它无法将缓存文件写入 tmp/cache 目录。由于这是本地的,我知道该目录是可写的,并且我可以清楚地看到目录甚至充满了文件,所以错误有点奇怪。
以下是我遇到的一些错误:
_cake_core_ cache was unable to write 'cake_dev_nb' to File cache
fopen(c:\cake\app\tmp\cache\models\cake_model_default_media) [function.fopen]: failed to open stream: No error [CORE\Cake\Cache\Engine\FileEngine.php, line 127]
没有错误?!什么?
现在,如果我查看 FileEngine 文件,在第 127 行它显示:
if (!$handle = fopen($this->_File->getPathName(), 'c')) {
return false;
}
通过将“c”替换为“w”,不会遇到任何错误,并且一切正常。但是,没有必要修改核心 Cake 库来解决这个问题。让我重复一遍,在我的另一台计算机上,它按预期工作,无需编辑核心库。两者都使用 Windows 操作系统,并且对 tmp/cache-folder 的读/写权限完全相同。
编辑:这是一个遇到我在本地的错误输出的站点
谷歌搜索找到的示例网站。不是我的网站:http://www.12h30.net/credit/
有什么建议么?
更新:原因如下:如果您在 5.2.6 之前的 PHP 版本过低(如评论中的“api55”所述),则会出现这种情况。谢谢回复。希望这对你也有帮助。
最佳答案
好吧,就我而言,当我检查我的应用程序时,它没有 /tmp
文件夹。然后我创建了结构( /tmp/cache/models
, /tmp/cache/persistent
)并且一切正常。这发生在我身上,可能 git ignore empty 文件夹,所以它们没有被创建。
关于file - CakePHP 2.0 - Cake 无法写入文件缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7584472/