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

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”所述。谢谢回复。希望这也能帮助你。

+2

你有什么版本的PHP?记住2.0仍然在RC阶段,所以它可能有这样的错误...对于模式C或C +你需要有PHP 5.2.6或更高版本,如果你不认识它,那么模式 – api55

只要给予正确的CHMOD776正常工作对我)app/tmp

嗯,在我而言,当我检查我的应用程序,它早已不是/tmp文件夹。然后我创建了结构(/tmp/cache/models/tmp/cache/persistent),并且都运行良好。这发生在我身上也许git忽略空文件夹,所以他们没有创建。

+1

事实上,版本控制系统通常会忽略空文件夹。 – Alfabravo

+0

这是正确的答案,为我工作。 –

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

简单的解决方案:

搭配chmod -R 777的应用程序/ TMP

CHOWN -R用户名的应用程序/ TMP

而使用控制台和

乔敦 - R的WWW应用程序的/ tmp

使用Web

+0

你救了我... –

+9

chmod 777永远不是任何事情的答案,这是完全错误的和不安全的! –

为Windows用户提供同样的错误/警告时:请确保您在运行提升模式下的命令提示符)