CakePHP 2.0 - Cake无法写入文件缓存
我正在使用CakePHP 2.0 RC-1。从SVN检出项目后,应用程序开始抱怨它无法将缓存文件写入tmp/cache目录。由于这是本地的,我知道该目录是可写的,我可以清楚地看到目录甚至填充了文件,所以这个错误有点奇怪。CakePHP 2.0 - Cake无法写入文件缓存
这里有一些我所遇到的错误的:
_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]
没有错误? WTH?
现在,如果我看在FileEngine文件,在第127行记载:
if (!$handle = fopen($this->_File->getPathName(), 'c')) {
return false;
}
通过与“W”,没有遇到任何错误取代“c”和一切工作,因为它应该。但是,不应该修改核心Cake库来解决这个问题。让我重复一遍,在我的另一台计算机上,它可以按预期工作,无需编辑核心库。两者都使用Windows操作系统,对tmp/cache-folder的读写权限完全相同。
编辑:下面是一个经历我在谷歌搜索发现本地
范例网站错误输出的网站。不是我的网站:http://www.12h30.net/credit/
有什么建议吗?
更新:原因如下:这是由于5.2.6版本以前的PHP版本太低而引起的,正如评论中的“api55”所述。谢谢回复。希望这也能帮助你。
只要给予正确的CHMOD
(776
正常工作对我)app/tmp
嗯,在我而言,当我检查我的应用程序,它早已不是/tmp
文件夹。然后我创建了结构(/tmp/cache/models
,/tmp/cache/persistent
),并且都运行良好。这发生在我身上也许git忽略空文件夹,所以他们没有创建。
事实上,版本控制系统通常会忽略空文件夹。 – Alfabravo
这是正确的答案,为我工作。 –
我有一个类似的问题,这是因为我有chown -R www到app/tmp目录来让Cake运行“正常”而没有给每个人写权限。看起来在开发过程中,使用控制台和Web的唯一方法是给每个人写权限,或者将自己添加到www组中。
简单的解决方案:
搭配chmod -R 777的应用程序/ TMP
或
CHOWN -R用户名的应用程序/ TMP
而使用控制台和
乔敦 - R的WWW应用程序的/ tmp
使用Web
你救了我... –
chmod 777永远不是任何事情的答案,这是完全错误的和不安全的! –
为Windows用户提供同样的错误/警告时:请确保您在运行提升模式下的命令提示符)
你有什么版本的PHP?记住2.0仍然在RC阶段,所以它可能有这样的错误...对于模式C或C +你需要有PHP 5.2.6或更高版本,如果你不认识它,那么模式 – api55