Cache Warmup mittels PHP-Script über Plesk Cron schlägt fehl - Connection refused

Hallo Community, 

ich versuche über einen Cronjob im Hosting (plesk-Oberfläche ohne SSH !) einen Cron einzurichten, welcher eine PHP-Datei ausführt. Shell-Skripte lassen sich scheinbar nicht ausführen.

In dieser PHP-Datei ( cron_cache_warmup.php ) wird der Cache geleert und danach aufgewärmt:

Hierzu muss man erläutern, dass ich zunächst beide exec-Befehle ausgeführt habe, bis ich -c entdeckt habe um vor dem Aufwärmen den Cache zu leeren.

 

Manuell:
Führe ich nun den Cronjob im Plesk manuell aus über den Button “Jetzt ausführen”, wird die cron_cache_warmup.php angesprochen und ausgeführt. Der Cache wird dann aufgewärmt.

Geplant:
Für den geplanten Task, welcher automatisch nachts durchgeführt werden soll, erhalte ich im Shopware Log Fehlermeldungen und der Cache wird nicht aufgewärmt.

Fehlermeldungen:

Warm up http-cache error with shopId 1 cURL error 7: Failed to connect to DOMAINNAME.de port 443: Connection refused

Die Fehlermeldung erhalte ich für alle Subshops. Es sind 16226 Fehlermeldungen innerhalb von 15 Sekunden. 

Laut Fehlermeldung meckert er weil er keine Verbindung über den Port 443 bekommt, diese ist Standartmässig der PORT für SSL/TLS
Versuche doch mal über https, bzw…passe den Curl Connect dementsprechend an.

 

 

 

 

1 Like

Hi @scriptfarm‍

danke für die Info.

Blöd gefragt (weil ohne Ahnung): cUrl kann ich nur per SSH Zugriff anpassen? Den habe ich nämlich nicht.
Muss ich dann mit dem Hoster korrespondieren oder kann ich das doch irgendwie selbst machen?
 

Naja ob es direkt an Curl liegt, weiss ich nicht, jedenfalls heisst die Fehlermeldung so.

Auch die Benutzer-und Ausführungsrechte dieser Datei sollten stimmen und einen Chmod 755 haben, per FTP Client anpassen.

Eventuell wird es daran liegen.

1 Like

Hallo @scriptfarm‍

ich habe die Rechte der Datei auf 755 gesetzt und einen Cron geplant. Die Rechte waren tatsächlich nicht ausreichend.
Ich werden berichten ob es klappt.

Andere Frage:
Ich habe parallel mehrere Shops liegen. Ein parallel liegender Shop wurde einmalig manuell aufgewärmt. Nach ca. 1-2 Tagen ist der Cache allerdings nicht mehr aufgewärmt. Ich habe den Cache nicht manuell invalidiert und war auch nicht im Backend in dieser Zeit.

  1. Frage: Leert sich der Cache von selbst und man muss jede Nacht aufwärmen? Unter Einstellungen > Caches / Performance > Einstellungen > HTTP-Cache gibt es ja Cache Zeiten für die Controller… hat das was damit zu tun?
  2. Häufig kann ich mit die Daten für den Cache auch nicht mehr ansehen. (siehe Screenshot). Das Hosting sollte aber leistungstechnisch mind. ausreichend sein.

 

 

 

An den Dateirechten liegt es scheinbar nicht. Die Fehlermeldungen im Log lauten:

Warm up http-cache error with shopId 1 Server error response

 

Warm up http-cache error with shopId 1 cURL error 7: Failed to connect to DOMAINNAME.de port 443: Connection refused

 

Kannst Du die …warmup.php über den Browser aufrufen, merkwürdig ist das es wohl direkt über Plesk funktioniert.

Dann scheint doch wohl was an dem Pfad nicht zu stimmen

Moin,

 

eigentlich einfach.

Mit deinem Script, greifst du auf Port 80 zu.

Cron versucht auf Port 443 zuzugreifen. Connection refused = Firewall

 

Hast Du zugrief auf die Console ?

Versuch mal im Plesk Cron Manager unter Befehl direkt folgendes auszuführen

/opt/plesk/php/7.2/bin/php ~/httpdocs/shopwareshop/bin/console sw:cron:run

Unter “Einstellungen für geplante Aufgaben” musst du ggf. Crontab-Shell noch auf bin/bash (chrooted) stellen

 

Sollte das ganze immer noch nicht gehen, kommst du evtl. nicht drum rum per SSH paar Dinge zu erledigen.

https://support.plesk.com/hc/en-us/articles/213909205-Website-shows-cURL-error-77-Problem-with-the-SSL-CA-cert-

https://support.plesk.com/hc/en-us/articles/115000963789-Unable-to-perform-curl-request-under-chrooted-user-on-CentOS-Unable-to-initialize-NSS

 

 

Bei mir sieht das ganze so aus 

Hallo zusammen.

@scriptfarm‍ ich kann die Datei aufrufen. Es erscheint eine weiße Seite. Ich kann aber nicht sagen, ob nun der Befehl ausgeführt wird, da ich im Backend unter Performance Cache nur den 0 - communication failure Fehler erhalte. Erst wenn ich den Cache einmal leere, funktioniert die Anzeige wieder. Nach erneutem Ausführen der PHP-Datei über den Browser scheint kein Cache aufgewämt zu werden.

@NahtlosShop‍ nein ich habe leider keinen SSH Zugang… 

@StefanPoensgen‍ Ich kann diesen Befehl nicht ausführen, weil php nicht gefunden wird… Unter “Einstellungen für geplante Aufgaben” kann ich nur die Zeitzone einstellen.

 

Am Anfang sagtest Du, das der Cache ausgewärmt wird, wenn Du alles manuell über Plesk mit dem Button “Jetzt ausführen” startest.

Wenn dem so ist, sollte das ja im Grunde heissen, das der Cron Befehl soweit passt, nur der zeitliche Aufruf über PHP nicht.

Genau - mit “Jetzt ausführen” im Plesk wird der Cache aufgewärmt. Beim geplanten Cron erscheinen die Fehler. Ich habe das jetzt mal an den Hoster weitergeleitet… 

Ich habe vom Hoster die Info bekommen, den Pfad einmal komplett auszuschreiben: /var/www/vhosts/DOMAIN/SHOPORDNER/…

Das habe ich gemacht und werde es mit dem geplant Cron testen.

Der Tipp vom Hoster hat ebenfalls nicht das gewünschte Ergebnis gebracht. Manuell funktioniert es, per Cron funktioniert es nicht - auch nicht mit komplettem Pfad…

Ich bekomme per Mail ja auch immer einen Fehler ausgegeben. Im Betreff der Mail steht vll. was hilfreiches: 

/opt/plesk/php/7.2/bin/php -f 'httpdocs/SHOPORDNER/cron_cache_warmup.php' > /dev/null