File CakePHP 2.0-Cake无法写入文件缓存

File CakePHP 2.0-Cake无法写入文件缓存,file,caching,cakephp,fopen,File,Caching,Cakephp,Fopen,我使用的是CakePHP2.0RC-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)

我使用的是CakePHP2.0RC-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”,不会遇到任何错误,一切正常。但是,不必修改核心蛋糕库来解决这个问题。让我在我的另一台计算机上重复一下,它可以按预期工作,而无需编辑核心库。两者都使用Windows操作系统,对tmp/cache文件夹的读/写权限完全相同

编辑:这里有一个网站,我在本地遇到了错误输出

谷歌搜索到的示例站点。不是我的网站:

有什么建议吗


更新:原因如下:如评论中的“api55”所述,如果5.2.6之前的PHP版本过低,则会导致此问题。谢谢你的回复。希望这对你也有帮助。

只要把正确的
CHMOD
776
对我来说很好)发送到
app/tmp
好吧,在我的情况下,当我检查我的应用程序时,它没有
/tmp
文件夹。然后我创建了这个结构(
/tmp/cache/models
/tmp/cache/persistent
),所有这些都运行良好。这发生在我身上,可能是git忽略了空文件夹,所以它们没有被创建。

我也遇到了类似的问题,因为我在app/tmp目录中添加了chown-R www,以便让Cake“正常”运行,而不给每个人写权限。看起来在开发过程中,使用控制台和web的唯一方法是授予每个人写权限,或者将自己添加到www组中

简易解决方案:

chmod-R 777应用程序/tmp

chown-R用户名应用程序/tmp

在使用控制台和

chown-R www-app/tmp


为windows用户使用web时,出现相同的错误/警告:请确保在提升模式下运行命令提示符;)

你有什么版本的php?请记住,2.0仍处于RC阶段,因此它可能会有这种错误。。。对于c或c+模式,您需要使用php 5.2.6或更高版本,如果您不这样做,它将无法识别该模式。事实上,版本控制系统通常会忽略空文件夹。chmod 777绝不是任何问题的答案,这是完全错误和不安全的!