【发布时间】:2011-11-26 22:06:55
【问题描述】:
我正在使用 CakePHP 2.0 RC-1。从 SVN 签出项目后,应用程序开始抱怨它无法将缓存文件写入 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/
有什么建议吗?
更新:原因如下:如果您的 PHP 版本过低(如 cmets 中的“api55”所述),在 5.2.6 之前,就会出现这种情况。谢谢回复。希望这对你也有帮助。
【问题讨论】:
-
你有什么版本的php?请记住,2.0 仍处于 RC 阶段,因此可能会出现此类错误...对于模式 c 或 c+,您需要 php 5.2.6 或更高版本,否则它将无法识别该模式
标签: file caching cakephp fopen