Versuch’ es mal so:
cd /var/www/vhosts/SERVERADRESSE/html/SHOPVERZEICHNISS/ && /usr/local/php7.4/bin/php bin/console sw:warm:http:cache
Versuch’ es mal so:
cd /var/www/vhosts/SERVERADRESSE/html/SHOPVERZEICHNISS/ && /usr/local/php7.4/bin/php bin/console sw:warm:http:cache
Danke dir, es hat aber leider nicht funktioniert - nach 30 Minuten nachgesehen, es waren nur 2,91 MB im Cache. Woran könnte das liegen? (Habe die Dateirechte auch schon auf 777 gesetzt, keine Änderung).
Vermutlich greift da die PHP max_execution_time.
Falls Du SSH Zugriff hast, mal den Befehl händisch eingeben und schauen was passiert.
Das bekomme ich als Ergebnis:
-bash: /usr/local/php7.4/bin/php: No such file or directory
… dann kann Dein Beispiel auch nicht nicht funktionieren, da PHP nicht gefunden wird.
Da Du erwähnst „PHP-Skript ausführen“ … falls es sich um ein System mit Plesk handelt, ist der korrekte Pfad für PHP 7.4 wie folgt:
/opt/plesk/php/7.4/bin/php
in diesem Fall brauchst Du auch keine eigene .sh Datei (sw_http_cache_warm.sh) sondern wählst als Cron-Variante „Befehl ausführen“ und trägst folgendes ein:
cd /var/www/vhosts/SERVERADRESSE/html/SHOPVERZEICHNIS/ && /opt/plesk/php/7.4/bin/php bin/console sw:warm:http:cache
Falls das nicht klappt beim Hoster erkundigen, wie denn der korrekte Pfad zu PHP 7.4 lautet.
Danke dir, ich probiere es aus!
Vielen dank, dein Tipp mit Plesk hat geholfen, ich habe über SSH den Cache erstellen können durch:
cd /var/www/vhosts/SERVERADRESSE/html/SHOPVERZEICHNIS/ && /opt/plesk/php/7.4/bin/php bin/console sw:warm:http:cache
Allerdings mit Einschränkungen. Nach 30 Minuten und 75% vom ersten Shop (mit 1er Parallelität) meldete er „Terminated“ und hat abgebrochen. Woran könnte das liegen? Die PHP max_execution_time steht bei mir auf 900 Sekunden, also 15 Minuten. Er hätte dann ja schon 15 Minuten eher abbrechen müssen, oder?
Wenn ich an sw:warm:http:cache` -cb8 anfüge, dann löscht er zuerst den Cache und erstellt ihn dann mit 8 parallelen Aufrufen.
Gehe ich richtig, wenn c für „Clear“ und b für „Batch“ sowie die Zahl für die Anzahl der Batch-Vorgänge steht?
Wenn ich den Cache manuell aufwärme, kann ich ja Stapelgröße und Parallelität einstellen. b10 müsste dann für die (größtmögliche?) Parallelität von 10 stehen, aber wie gebe ich die Stapelgröße an?
Hi,
bei der Parallelität würde ich es nicht übertreiben und den Standard verwenden (also einfach sw:warm:http:cache ohne zusätzliche Parameter) - andernfalls kannst Du schnell den Server überlasten - je nach Hosting sind auch die Anzahl gleichzeitiger Requests limitiert (insbesondere bei einfachem Shared Hosting).
Wird der Befehl auf der Konsole ausgeführt greift häufig die max_execution_time nicht (wohl aber bei Cronjobs).
Grundsätzlich solltest Du Dir zunächst jedoch sowieso Gedanken über die richtige Cache-Strategie machen. Das ständige Cache-Aufwärmen bringt nichts, wenn die TTL (Ablaufzeit) in den Einstellungen zu niedrig eingestellt ist wie im nachfolgenden Screenshot) - dann ist der Cache bereits abgelaufen/verfallen, bevor dieser überhaupt vollständig aufgewärmt wurde.
Viele Grüße
Danke dir - ich hatte es mir mit der Parallelität überlegt, da ich mal Tests mit der Stoppuhr gemacht habe und 100er Stapelgröße mit 10er Parallelität die schnellste Zeit zum Cache aufwärmen ergab.
Das Bild, das du verlinkt hast, zeigt die Standardeinstellungen, oder? Damit hatte ich mich in all der Zeit nicht beschäftigt, womöglich ein Fehler? Sehe ich das richtig, dass das Listing, die Detailseite usw. im Cache nur 3600 Sekunden oder 1 Stunde Ablaufzeit haben? Was wäre denn eine vernünftige Einstellung, wenn ich den Cache bloß einmal am Tag aufwärmen lassen will? 86400 für 24 Stunden? Wenn ja, sollte ich das auf frontend/listing, frontend/detail, frontend/index und widgets/checkout anwenden, damit das schneller geladen wird?
Viele Grüße & vielen Dank!!
Genau - der Cache Controller legt fest, wie lange der entsprechende Teil des Shops im Cache vorgehalten wird. Ich verwende z.B. in Shops, in denen sich selten etwas ändert (z.B. keine Preisänderungen, Änderungen an Artikeln oder Beschreibungen sogar folgenden „extremen“ Wert) - Cache wird nur händisch geleert, wenn sich etwas an den Artikeln oder im Shop ändert.
Nochmals Danke, ich probiere es aus!
Nochmals vielen herzlichen Dank für deine Hilfe!
Per Cronjob den Befehl
cd /var/www/vhosts/SERVERADRESSE/html/SHOPVERZEICHNIS/ && /opt/plesk/php/7.4/bin/php bin/console sw:warm:http:cache
ausführen zu lassen hat funktioniert, der Cache wurde zuverlässig heute Nacht aufgebaut. Ich habe die Cache-Controller-Zeiten von frontend/listing, index und detail auf 86400 gestellt, klappt auch prima. Eine letzte Frage noch: Welcher der Cache-Controller ist für die Einkaufswelten-Seiten zuständig?
Hallo,
ich würde auf widgets/emotion tippen - sicher bin ich mir allerdings nicht.
Viele Grüße