2012-01-23 10 views
7

Dopo aver eseguito l'aggiornamento del codice. Ho ricevuto questo errore. Potresti aiutarmi a capire questo? Ho dato il permesso 777 a tutte le cartelle. Grazie in anticipo!Errore irreversibile: eccezione non rilevata 'Zend_Cache_Exception' con messaggio> 'cache_dir deve essere una directory'

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

Zend sembra pensare che il 'cache_dir' impostato non sia una directory, ma molto probabilmente un file. Quale valore hai impostato come 'cache_dir'? – drew010

+0

'cache_dir' => 'C: \ temp \ cache Ho creato questa cartella perché avevo già provato a gestire un problema in questo modo. –

+3

In questo caso qualcosa non viene impostato correttamente o passato correttamente perché nella traccia dello stack vedo 'Zend_Cache_Backend_File-> setCacheDir ('C: \ xampp \ htdocs ...')' così sembra che stia cercando di usare qualcosa in 'C: \ xampp \ htdocs' come cache_dir, non' C: \ temp \ cache' – drew010

risposta

6

Impostazione della cache in bootstrap

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

Ha funzionato! Questo è un grosso problema per un sacco di persone, e nessuno ha offerto la risposta. Grazie! –

+0

Sto affrontando lo stesso errore qualcuno può dirmi come impostare questa funzione e in quale file posizioniamo quella funzione e dove chiamare quella funzione. Grazie in anticipo. –

4

Non si tratta di permessi, ZF non riesce a trovare la cartella della cache. Verifica se la directory impostata in application.ini esiste effettivamente. Dato che sei sulla macchina Windows, le autorizzazioni non dovrebbero essere un problema.

5

Vai a C: \ xampp \ htdocs \ mts \ library \ Zend \ Cache \ Backend \ File.php alla riga 154 e echo $value prima delle condizioni. Dovrebbe darti un indirizzo di directory. Assicurati che la directory esista nel tuo file system. Fondamentalmente è necessario impostare correttamente questo percorso nella configurazione di zend.

Problemi correlati