Я использую 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]
Нет ошибки?! Wth?
Теперь, если я смотрю файл FileEngine, в строке 127 он читает:
if (!$handle = fopen($this->_File->getPathName(), 'c')) {
return false;
}
Заменив "c" на "w", ошибка не встречается, и все работает так, как должно. Но для изменения этой проблемы не требуется изменять основные библиотеки Cake. Позвольте мне повторить, что на моем другом компьютере это работает по назначению, без редактирования основной библиотеки. Оба используют ОС Windows, и права на чтение/запись в папку tmp/cache одинаковы.
Изменить: Здесь сайт, который испытывает ошибки, я локально
Пример сайта, найденный Googling. Не мой сайт: http://www.12h30.net/credit/
Любые предложения?
Обновление: Вот почему: Это вызвано, если у вас слишком низкая версия PHP до 5.2.6, как описано в api55 в комментариях. Спасибо за ответ. Надеюсь, это тоже поможет вам.