2012-01-23 31 views
7

Después de hacer la actualización de mi código. Tengo este error ¿Podría ayudarme a resolver esto? Di permiso 777 a todas las carpetas. ¡Gracias de antemano!Error fatal: excepción no detectada 'Zend_Cache_Exception' con el mensaje> 'cache_dir debe ser un directorio'

Fatal error: Uncaught exception 'Zend_Cache_Exception' with message 'cache_dir must be a directory' in C:\xampp\htdocs\mts\library\Zend\Cache.php:208 Stack trace: #0 C:\xampp\htdocs\mts\library\Zend\Cache\Backend\File.php(154): Zend_Cache::throwException('cache_dir must ...') #1 C:\xampp\htdocs\mts\library\Zend\Cache\Backend\File.php(121): Zend_Cache_Backend_File->setCacheDir('C:\xampp\htdocs...') #2 C:\xampp\htdocs\mts\library\Zend\Cache.php(152): Zend_Cache_Backend_File->__construct(Array) #3 C:\xampp\htdocs\mts\library\Zend\Cache.php(93): Zend_Cache::_makeBackend('File', Array, false, false) #4 C:\xampp\htdocs\mts\application\Bootstrap.php(22): Zend_Cache::factory('Core', 'File', Array, Array) #5 C:\xampp\htdocs\mts\library\Zend\Application\Bootstrap\BootstrapAbstract.php(636): Bootstrap->_initCache() #6 C:\xampp\htdocs\mts\library\Zend\Application\Bootstrap\BootstrapAbstract.php(589): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('cache') 7# C:\xampp\htdocs\mts\library\Zend\Application\Bootstrap\Boots in C:\xampp\htdocs\mts\library\Zend\Cache.php on line 208

+0

Parece que Zend piensa que el 'cache_dir' que configura no es un directorio, sino muy probablemente un archivo. ¿Qué valor configuró como 'cache_dir'? – drew010

+0

'cache_dir' => 'C: \ temp \ cache He creado esta carpeta porque ya había intentado manejar un problema de esta manera. –

+3

En ese caso, algo no se está configurando correctamente o se ha pasado correctamente porque en el seguimiento de la pila veo 'Zend_Cache_Backend_File-> setCacheDir ('C: \ xampp \ htdocs ...')' por lo que parece que está tratando de usar algo en 'C: \ xampp \ htdocs' como cache_dir, no' C: \ temp \ cache' – drew010

Respuesta

6

Configuración de la caché en el arranque

protected function _initCaching() { 
     $frontend = array(
      'lifetime' => 7200, 
      'automatic_serialization' => true 
     ); 
     $backend = array(
      'cache_dir' => sys_get_temp_dir(), /**automatically detects**/ 
     ); 
     $cache = Zend_Cache::factory('core', 'File', $frontend, $backend); 
     Zend_Registry::set('cache', $cache); 
    } 
+3

¡Funcionó! Este es un gran problema para mucha gente, y ninguno ha ofrecido la respuesta. ¡Gracias! –

+0

Me enfrenta el mismo error ¿alguien me puede decir cómo configurar esta función y en qué archivo colocamos esa función y dónde llamar a esa función? gracias por adelantado. –

4

No se trata de permiso, ZF no puede encontrar el directorio de caché. Compruebe si realmente existe el directorio que estableció en application.ini. Como está en la máquina Windows, los permisos no deberían ser un problema.

5

Vaya a C: \ xampp \ htdocs \ mts \ library \ Zend \ Cache \ Backend \ File.php en la línea 154 y echo $value antes de las condiciones. Debería darle una dirección de directorio. Asegúrese de que el directorio exista en su sistema de archivos. Básicamente, debe establecer esta ruta correctamente en su configuración zend.

Cuestiones relacionadas