Hallo zusammen, ich habe seit ein paar Tagen ein Problem mit der CE. Die Installation wurde sorgfältig - bereits schon mehrfach - mit dem mitgelieferten Installer installiert. Sobald ich auf „Einstellung > Cache / Performance“ gehe, erhalte ich folgende Fehlermeldung: Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. RecursiveDirectoryIterator::\_\_construct(/var/www/vhosts/.../cache/general/shopware--Zend/shopware--LocaleL/shopware--en): failed to open dir: Permission denied in Shopware/Controllers/Backend/Cache.php on line 477 Stack trace: #0 [internal function]: RecursiveDirectoryIterator-\>\_\_construct('/var/www/vhosts...', 0) #1 Shopware/Controllers/Backend/Cache.php(477): RecursiveDirectoryIterator-\>getChildren() #2 Shopware/Controllers/Backend/Cache.php(372): Shopware\_Controllers\_Backend\_Cache-\>getDirectoryInfo('/var/www/vhosts...') #3 Shopware/Controllers/Backend/Cache.php(49): Shopware\_Controllers\_Backend\_Cache-\>getConfigCacheInfo() #4 Enlight/Controller /Action.php(148): Shopware\_Controllers\_Backend\_Cache-\>getInfoAction() #5 Enlight/Controller/Dispatcher/Default.php(521): Enlight\_Controller\_Action-\>dispatch('getInfoAction') #6 Enlight/Controller/Front.php(214): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #7 Shopware/Components /HttpCache/HttpKernel.php(79): Enlight\_Controller\_Front-\>dispatch() #8 Symfony/Component/HttpKernel/HttpCache/HttpCache.php(434): Shopware\Components \HttpCache\HttpKernel-\>handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #9 Shopware/Components/HttpCache/AppCache.php(234): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #10 Symfony/Component/HttpKernel/HttpCache/HttpCache.php(230): Shopware\Components\HttpCache\AppCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true) #11 Shopware/Components/HttpCache/AppCache.php(99): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>pass(Object(Symfony\Component\HttpFoundation \Request), true) #12 Shopware/Bootstrap.php(70): Shopware\Components\HttpCache \AppCache-\>handle(Object(Symfony\Component\HttpFoundation\Request)) #13 Enlight/Application.php(192): Shopware\_Bootstrap-\>run() #14 shopware.php(83): Enlight\_Application-\>run() #15 {main}
Die Ordnerrechte wurden nach Installationsanleitung richtig gesetzt (CHMOD 777). Ich konnte jedoch die Fehlerursache ermitteln. Sobald ich das Plugin „Cron“ aktiviere, welches momentan alle 5 Minuten durchläuft, wird immer - ich hab bisher noch nicht herausgefunden was hierfür verantwortlich ist - der Cache Ordner gecrasht bzw. sämtliche Ordnerrechte auf 771 gesetzt. Ein Cronjob der hierfür verantwortlich ist, gibt es im Backend nicht, daher vermute ich ein Script im Core, welches beim Aufruf vom Cron mitläuft. Gehe ich nun über SSH auf den Server und ändere im Shopware-Ordner die Rechte via chmod 777 -R cache, somit kann ich dann im Backend „Einstellung > Cache / Performance“ wieder problemlos verwenden. Jedoch nur solange, bis der Cron wieder ausgeführt wird. Sofern in crontab auf dem Server das Cron-Script von Shopware nicht eingerichtet wurde, funktioniert „Einstellung > Cache / Performance“ ohne einer einzigen Fehlermeldung. Hat hierzu jemand eine Idee? Viele Grüße Florian Ressel
Eine Idee nicht, aber kann ich zu 100% bestätigen. Gesendet von meinem HTC One mit Tapatalk
Hi, so wie ich das sehe, sind 0771 die Standard-Rechte für den File-Cache. Das könnt ihr euch hier ansehen: /engine/Shopware/Configs/Default.php Das müsstet ihr in eurer config.php ganz normal ändern können, indem ihr das cache-Array überschreibt. lG Daniel
Hi, in der config.php gibt es kein cache-Array. Gruß
Genau, aber wenn du einen erstellst, dann überschreibst du damit die Werte in der oben genannten Default.php <?php return array (
'db' => array ( 'username' =\> 'foo', 'password' =\> 'bar', 'host' =\> 'localhost', 'port' =\> '3306', 'dbname' =\> 'bar', ), 'cache' =\> array( // ... ); );
Hallo, vielen Dank für die Info. Das Problem konnte dadurch gelöst werden. Vlt. könnte man grundsätzlich die CHMOD von 771 auf 777 setzen. Viele Grüße Florian Ressel
Wie sieht dieses cache array denn genau aus? Wie muss ich das in der config.php eingeben? Habe dasselbe Problem nach Einrichtung der Crontabs…