file caching cakephp fopen

file - CakePHP 2.0-Cake no pudo escribir en la caché de archivos



caching fopen (4)

Estoy usando CakePHP 2.0 RC-1. Después de verificar el proyecto de SVN, la aplicación está empezando a quejarse de que no puede escribir archivos de caché en el directorio tmp / cache. Ya que esto es local, sé que el directorio se puede escribir y puedo ver claramente que los directorios están llenos de archivos, por lo que el error es un poco extraño.

Estos son algunos de los errores que he encontrado:

_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]

¡¿No hay error?! Que?

Ahora, si busco en el archivo FileEngine, en la línea 127 se lee:

if (!$handle = fopen($this->_File->getPathName(), ''c'')) { return false; }

Al reemplazar la "c" con "w", no se encuentra ningún error y todo funciona como debería. Pero, no debería ser necesario modificar las bibliotecas principales de Cake para solucionar este problema. Permítanme repetir que en mi otra computadora esto funciona según lo previsto, sin editar la biblioteca central. Ambos utilizan el sistema operativo Windows y los derechos de lectura / escritura en la carpeta tmp / cache son exactamente los mismos.

Editar: aquí hay un sitio que experimenta los resultados de error que tengo localmente

Ejemplo de sitio encontrado por Google. No es mi sitio: http://www.12h30.net/credit/

¿Alguna sugerencia?

Actualización: Este es el motivo: esto se debe a que tiene una versión de PHP demasiado baja, antes de la 5.2.6, como se indica en "api55" en los comentarios. Gracias por la respuesta. Espero que esto le ayude también.


Bueno, en mi caso, cuando revisé mi aplicación, no tenía la carpeta /tmp . Luego creé la estructura ( /tmp/cache/models , /tmp/cache/persistent ) y todo funcionó bien. Esto me pasó, tal vez git ignore las carpetas vacías, por lo que no se crearon.


Solo dale el CHMOD correcto ( 776 funciona bien para mí) para app/tmp


Tuve un problema similar, era porque tenía chown -R www en el directorio app / tmp para que Cake se ejecutara "correctamente" sin dar a todos los privilegios de escritura. Parece que durante el desarrollo, la única forma de usar la consola y la web es dar a todos los privilegios de escritura, o quizás agregarte al grupo www.

Solución fácil:

chmod -R 777 app / tmp

o

chown -R nombre de usuario app / tmp

mientras se usa la consola y

chown -R www app / tmp

cuando se usa la web


para usuarios de Windows con el mismo error / advertencia: asegúrese de ejecutar el símbolo del sistema en modo elevado;)