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
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Fehler tritt normalerweise auf, weil der Berechtigungen.
Um dieses Problem zu lösen, wenn Sie apache als Webserver, die Inhaberschaft an apache.
Auf meinem Fedora Core Maschine, die ich dies Problem gelöst, indem Sie einfach die Ausstellung:
InformationsquelleAutor kay
Als ich dies Schreibe Frage ich bemerkte meinen Fehler, die
tmp
Verzeichnis beschreibbar ist von mir und anderen Benutzern der gleichen Gruppe, offenbar Zend wird der Zugriff auf die Dateien eines anderen Benutzers. Die Lösung warchmod 777
auf den Ordner, so dass Sie beschreibbar.InformationsquelleAutor That Brazilian Guy
Hatte das gleiche Problem, gelöst durch folgende einfache Schritt.
lib>Zend - >Cache>Backend>File.php
finde diese Zeile
Entfernen Sie das Angebot und lassen Sie es, wie
Es wirklich für mich gearbeitet.
InformationsquelleAutor Aravind