我正在使用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的读/写权限完全相同。
编辑:这是一个体验我本地错误输出的网站
Googling找到的示例网站。不是我的网站:http://www.12h30.net/credit/
有什么建议吗?
更新:原因如下:如果您的版本太低,在5.2.6之前就会导致这种情况,如评论中“api55”所述。谢谢回复。希望这对你也有帮助。
答案 0 :(得分:24)
嗯,在我的情况下,当我检查我的应用时,它没有/tmp
文件夹。然后我创建了结构(/tmp/cache/models
,/tmp/cache/persistent
),一切运作良好。这件事发生在我身上,也许是git忽略空文件夹,所以没有创建它们。
答案 1 :(得分:17)
我遇到了类似的问题,那是因为我已经在app / tmp目录中输入-R www来让Cake正常运行而不给每个人写入权限。在开发过程中,使用控制台和Web的唯一方法是给每个人写入权限,或者将自己添加到www组中。
简易解决方案:
chmod -R 777 app / tmp
或
chown -R username app / tmp
使用控制台和
chown -R www app / tmp
使用网页时
答案 2 :(得分:2)
只需将CHMOD
(776
可以正常工作)放到app/tmp
答案 3 :(得分:0)
对于具有相同错误/警告的Windows用户:确保以提升模式运行命令提示符;)