Ein Shop wurde per FTP auf einem neuen (für Shopware optimierten Server) hochgeladen, installiert und eingerichtet. Der Benutzer, sagen wir ist “Hase”. Die komplette Domain, der komplette Shop und der Cronjob läuft unter dem Benutzer “Hase”.
Irgendwann ist der Shop plötzlich nicht mehr aufrufbar und zeigt nur noch eine weiße Seite mit diesem Text:
Warning: mkdir():
Permission denied in
/var/www/vhosts/…/vendor/symfony/http-kernel/HttpCache/Store.php on line 40
Grund dafür war, dass ein Cache-Ordner (/var/cache/production_2016xxxx) mit Benutzer “root” angelegt wurde und dadurch der mkdir()-Befehl nicht mehr ging. Nun stellt sich die Frage, wie kann das sein? Wie kann es innerhalb vom Shopsystem zu einem Benutzer-Wechsel kommen? Wie kann ich solche Fehler vermeiden ohne dafür einen Eingriff im System vornehmen zu müssen?
Laut Shopware-Support fällt das nicht in den technischen Support und konnte da nicht beantwortet werden. Man solle den Fehler in der Server-Konfiguration suchen. Allerdings ist ja der Benutzer “Hase” domainbezogen.
Die Frage ist, unter welchem Benutzer der Webserver läuft z.B. www-data? Genau dieser Benutzer benötigt Schreibrechte. Da spielt es keine Rolle, ob der FTP-Benutzer Hase ist oder nicht.
Die Frage ist, unter welchem Benutzer der Webserver läuft z.B. www-data? Genau dieser Benutzer benötigt Schreibrechte. Da spielt es keine Rolle, ob der FTP-Benutzer Hase ist oder nicht.
Es handelt sich hier um einen Root-Server - kein vServer. Der zustände Benutzer wird mit der Domain bzw. dem Abonnement vergeben.
Führst du denn irgendwelche Shell-Script aus - wie bspw. clear_cache.sh? Vielleicht führst du die ja ggf. als root aus.
Ja hin und wieder, weil (ich glaube) Shopware nie den Cache-Ordner übers Backend komplett platt macht.
Das ist ja auch ganz bewusst so. Den Cache für die Attribut-Models kannst du über das Backend nicht leeren. Das wird lediglich bei Plugin-Installationen gemacht. Ist aber auch ganz bewusst so umgesetzt, da der Cache quasi nur neu aufgebaut werden braucht, wenn es eine neue Attributspalte gibt.
Oder hast Du vielleicht mal ein Backup per SCP zurückgespielt als root user? Oder einen Compare durchgeführt? Also das ein Apache Prozess der unter “Hase” läuft den Owner von sich aus ändert ist quasi unmöglich, da ein Apache Prozess nie die Rechte haben sollte Verzeichnisrechte zu ändern (nur -RX).