1. Home
  2. Wissensdatenbank
  3. Software & Skriptsprachen
  4. Shopware
  5. Shopware 5: HTTP-Cache leeren und aufwärmen

Shopware 5: HTTP-Cache leeren und aufwärmen

Um Altlast eines Caches zu entfernen, empfihelt es sich häufig diesen täglich zu leeren sowie aufzuwärmen.
Dies ist über Cronjobs realisierbar, die entsprechende Skripte aufrufen.

Erstellen Sie folgendes Skript am besten in einem neuen Verzeichnis, wie z. B: "~/cron", also direkt im home Verzeichnis.

Bei dem Skript muss noch die PHP Version sowie der Pfad zur Shop Instanz angepasst werden:

Welche PHP Einstellungen werden verwendet (info.php)?

Cache leeren und aufwärmen:

sw_http_cache_warm.sh

#!/bin/sh
/usr/local/phpX.Y/bin/php ~/domain.de/bin/console sw:warm:http:cache -cb8
/usr/local/phpX.Y/bin/php ~/domain.de/bin/console sw:generate:attributes

Mit der Option "-c" wird zunächst der Shopware Cache geleert. Die Option "-b" steht erst ab Shopware 5.5 zur Verfügung und sorgt dafür, dass mehrere Seiten zeitgleich aufgewärmt werden. In dem oben genannten Beispiel werden 8 URLs gleichzeitig in den Cache geladen.
Insbesondere bei umfangreicheren Shops lohnt es sich Varianten nicht aufzuwärmen:

sw_http_cache.sh

#!/bin/bash
/usr/local/phpX.Y/bin/php ~/domain.de/bin/console sw:generate:attributes
/usr/local/phpX.Y/bin/php ~/domain.de/bin/console sw:warm:http:cache -ckohmtpb8

Hinweis

Je nach Shop dauert das Aufwärmen des Caches sehr lange. Das Skript sollte mind. 600 Sekunden laufen dürfen. Es bietet sich an, die ersten Tage die Ausgabe des Cronjobs per E-Mail schicken zu lassen, um zu prüfen, wie viel aufgewärmt werden konnte.

Das Skript benötigt noch Rechte zum Ausführen.
Per SSH:

chmod 755 ~/cron/sw_http_cache.sh

Das Skript muss nun noch in ServerCon als Cronjob eingebunden werden:

Wie richte ich einen Cronjob ein?

Der Cronjob sollte dann laufen, wenn Ihr Shop wenig genutzt wird. In der Regel bietet sich der Zeitraum zwischen 01:00 und 06:00 Uhr an.

Aktualisiert am 26. September 2023
War dieser Artikel hilfreich?

Ähnliche Artikel