Cache per PHP löschen

Hallo,

ich möchte per PHP script den Shopware 5.6.6 cache löschen.
Den Befehl der Console php console sw:cache:clear rufe ich mittels

shell_exec("/usr/bin/php7.3 /var/www/MEINEURL/..../bin/console sw:cache:clear");

Und nun das eigentlich Problem. Das Cache Löschen per php script funktioniert solange, bis im cache Ordner ein weiterer Ordner analog zu production_202003031106 angelegt wird. Dieser heisst dann production_20200303110~

Warum das passiert, verstehe ich nicht. In einem anderen Shop taucht dieser Ordner nicht auf.

Dieser ~ Ordner verschwindet nur, wenn ich den Cache über die Console lösche, im Backend den Cache löschen ändert nichts und solange dieser Ordner da ist liefert shell_exec nur NULL zurück. Im php Errorlog ist leider nichts.

Kann mir da jemand Licht ins Dunkel bringen bitte?

Gruß

Gunnar

Ich antworte mal selbst, vielleicht hilft es wem.

Die Lösung ist folgende:
Man sollte im crontab des Servers nicht die Cronjobs von Shopware aufrufen, wenn diese als root ausgeführt werden.
Das hat zur unter anderem Folge, dass das PHP Script den Cache nicht mehr löschen darf, bzw auch Shopware selbst nicht mehr auf die Cachedateien zugreifen darf, weil diese nun root gehören.

Letztendlich habe ich es gelöst, indem ich die Shopware Cronjobs ebenfalls per PHP über wget im crontab des Servers starte.

Vielleicht nicht elegant, aber es funktioniert.

Gruß

Gunnar

Ggf. die Shopware Cronjobs über den Crontab des www-data Users aufrufen lassen :wink: