Shopware SSH Befehle

Aus Glaskugel
Zur Navigation springen Zur Suche springen

Hier eine kleine Übersicht wie wir, bzw. unsere Kunden SSH Befehle / CLI Commands auf einem unserer Server ausführen können

Shopware bietet eine Fülle an div. Coammands an, die auf der SSH ausgeführt werden können. Viele davon (die meisten), kann der Kunde via Geplante Aufgaben in Plesk selbst ansteuern.

Das Anlegen eines solchen Befehls erfolgt mittels Aufgabentyp PHP-Skript ausführen mit folgenden Angaben
Scriptpfad*: /var/www/vhosts/xxx.12345.onlineshophosting.de/httpdocs/sw6/bin/console
mit Argumenten: (z.B.) sitemap:generate (oder auch) http:cache:warm:up
Unschwer am obigen Beispiel zu erkennen: Der Scriptpfad zeigt in den Ordner /bin/console im Basisverzeichnis der Shopware Installation - NICHT in den /public Ordner der Shopware Installation!
Dies klappt leider nicht bei Befehlen die eine y/n Abfrage im Prompter erwarten, und kann nur direkt via SSH (also durch uns) umgesetzt werden!
Die häufigste Anfrage hierzu dürfte also das Löschen von nicht verwendeten Bildern sein: media:delete-unused, die der Kunde nicht umsetzen kann.
Eine Auflistung aller dieser Befehle und die passende Shopware DOC sind hier zu finden.

Wie hilfst Du nun dem Kunden? Wie kannst Du erfolgreich den SSH Befehl ausführen?

Zunächst (!!) Übernehmen wir das Ausführen eines SSH Kommandos im Kundenauftrag, so wird dies nur auf einem Managed Server stattfinden, zudem solltest du dich vorher Absichern und einen Snapshot unmittelbar vorher erstellen.

1. Logge Dich als User root via SSH auf dem Kundenserver ein. Ggfs. musst Du die PDSH nutzen.
2. Wechsele nun in den /bin Ordner im Basisverzeichnis der Shopware Installation. Der Shop liegt im Beispiel im Ordner /httpdocs/sw6, der Befehl lautet also:
cd /var/www/vhosts/xxx.12345.onlineshophosting.de/httpdocs/sw6/bin/
Du befindest Dich jetzt in dem Verzeichnis, in dem der console Befehl von Shopware liegt
Kannst Du auch prüfen mit dem Befehl ls -lah
3. Da Shopware die Befehle, bzw. die sich anschließenden Scripte mindestens via PhP7.4 verarbeiten möchte, auf SSH Ebene per default aber meist PhP 5.6 hinterlegt ist, müssen wir den Befehl als PhP 7.4 / 8.0 ausführen, wie folgt:
/opt/plesk/php/8.0/bin/php ./console media:delete-unused
für PHP8.0
4. Du wirst nun gefragt ob Du die Files tatsächlich löschen willst und bestätigst mit
yes
5. Prüfe im Nachgang ob der Kundenshop noch aussieht wie vorher und erreichbar ist und teile dem Kunden dann mit, dass Du ihm erfolgreich helfen konntest.