Zend Cache Ausnahme: 'cache_dir ", " /home/(...)/application/../data/tmp/" ist nicht beschreibbar'

Ich bin wirklich neue Zend, einige Tage verwenden.

Bin ich immer eine fatal error Nachricht:

Fatal error: Uncaught exception 'Zend_Cache_Exception' with message 'cache_dir ", " /home/[REDACTED]/application/../data/tmp/" ist nicht beschreibbar' in /home/[REDIGIERT]/library/Zend/Cache.php:209 
Stack-trace: 
#0 /home/[REDACTED]/library/Zend/Cache/Backend/File.php(181): Zend_Cache::throwException('cache_dir "/hom...') 
#1 /home/[REDACTED]/library/Zend/Cache/Backend/File.php(129): Zend_Cache_Backend_File->setCacheDir('/home/user/Proj...') 
#2 /home/[REDACTED]/library/Zend/Cache.php(153): Zend_Cache_Backend_File->__construct(Array) 
#3 /home/[REDACTED]/library/Zend/Cache.php(94): Zend_Cache::_makeBackend('File', Array, false, false) 
#4 /home/[REDACTED]/application/Bootstrap.php(42): Zend_Cache::factory('Core', 'File', Array, Array) 
#5 /home/[REDACTED]/library/Zend/Application/Bootstrap/BootstrapAbstract.php(669): Bootstrap->_initCache() 
#6 /home/[REDIGIERT]/library/Zend/Ge in /home/[REDACTED]/library/Zend/Cache.php auf der Linie 209 

Entsprechend der Fehlermeldung, würde ich erwarten, dass ein Ordner-Berechtigungen auf die tmp - Verzeichnis. Das Verzeichnis ist jedoch beschreibbar:

user@[REDATCED]:~/[REDATCED]/Daten$ ls -hal 
insgesamt 24K 
drwxrwxr-x 6 Benutzer Benutzer 4,0 K Jan 7 18:40 . 
drwxr-xr-x 12 user user 4,0 K Jan 9 12:50 .. 
drwxrwxr-x 3 user user 4,0 K Dez 17 11:42 locales 
drwxrwxr-x 2 user user 4,0 K Dez 17 11:42-Protokolle 
drwxrwxr-x 2 user user 4,0 K Dez 17 11:42-Sitzungen 
drwxrwxr-x 2 user user 4,0 K Jan 7 18:40 tmp 

Die Problemumgehung ist, um kommentieren Sie die folgenden Zeilen auf application/Bootstrap.php:

 geschützte Funktion _initCache() { 
$frontendOptions = array( 
'lifetime' => 7200, //cache-Lebensdauer von 2 Stunden 
'automatic_serialization' => true 
); 

$backendOptions = array( 
'cache_dir' => APPLICATION_PATH . '/../data/tmp/' //Verzeichnis, in dem 
); 

//immer ein Zend_Cache_Core Objekt 
$dies->cache = Zend_Cache::factory('Core', 'File', 
$frontendOptions, $backendOptions); 

Zend_Registry::set('cache', $this->cache); 

Zend_Date::setOptions(array( 
'cache' => $this->cache 
)); 

Dieser workaround wurde vorgeschlagen, durch einen Kollegen habe ich keine Ahnung, was ich hier mache oder auch, wenn dieser code ist Teil von Zend oder unsere codebase. Ich weiß nicht, wie hässliche hacks, oder "fixieren" die Sachen in dem code auskommentieren, oder etwas zu tun, ohne zu wissen, was ich Tue, oder ist der Grund dahinter.

Außerdem, der code scheint zu funktionieren auf meine Mitarbeiter " Maschinen. Und jedes mal, wenn ich ziehen Sie Ihre code-commits aus dem repository bekomme ich eine unkommentierte Kopie sowieso.

Ich könnte wahrscheinlich ausschließen, die Datei aus dem repository oder ähnliches, dass (ich bin neu in git auch), aber ich wirklich lieber:

  • Zu wissen, die Ursache für den Fehler
  • Wissen die Lösung
Die Fehlermeldung besagt eindeutig, dass ein Verzeichnis (oder eine Datei) ist nicht beschreibbar, die in der Regel Punkte, um Erlaubnis Fragen.
Ja, das ist richtig, und es war in der Tat der Fall.
FYI, durch auskommentieren der Methode in deinem letzten code-Beispiel waren Sie deaktivieren die Initialisierung des cache-Objekt in Ihrer Anwendung (das ist das, was war, und warf die Berechtigungen Fehler). Es ist wahrscheinlich, würde dies die Probleme verursacht haben an anderer Stelle in Ihrer Anwendung (das wäre Fehler, wenn er versucht, auf die jetzt nicht vorhandene cache-Ressource).
Vielen Dank für Ihre Zeit, dies zu erklären, als ich sagte, dass ich wirklich sehr neue Zend und habe nicht viel Ahnung, wie die Dinge funktionieren (um ehrlich zu sein, jemand, der soeben installierten Zend und NetBeans auf meinem Rechner und sagte "hier, die es nutzen").

InformationsquelleAutor That Brazilian Guy | 2013-01-09

Schreibe einen Kommentar