ich habe den Admin-Worker deaktiviert und stattdessen Cronjobs eingerichtet. Die Cronjobs bei meinem Hoster verweisen auf den relativen Pfad einer PHP-Datei, welche in /public liegt. Rufe ich die PHP-Datei mit domain.de\scheduled_task.php auf, wird sie ohne Probleme ausgeführt. Will allerdings der Cronjob meines Hosters diese Datei aufrufen und ausführen, wird folgende Fehlermeldung angegeben:
PHP Parse error: syntax error, unexpected ‚class‘ (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or ‚{‘ or ‚$‘ in /var/www/vhosts/user.hoster.de/shopname/bin/console on line 24
Hat jemand eine Idee, was es damit auf sich hat? Die PHP-Dateien haben Berechtigung 755, das Console-File ebenfalls.
Auf der Konsole läuft eine andere, meist eine ältere PHP-Version als auf dem Webserver.
Entweder im Befehl die zu verwendende PHP-Version mit angeben oder global vom Provider umstellen lassen, falls man das nicht selbst in der System-Konfiguration kann.
Danke für die schnelle Rückmeldung. Ich kann bei meinem Hoster bei der Cronjob-Erstellung die PHP-Version über ein Dropdown auswählen, welche genutzt werden soll. Sowohl für den Shop als auch den Cronjob werden PHP 8.2(.5) ausgeführt.
kann eigentlich nur auf eine veraltete PHP-Version oder andere php.ini hindeuten, wie bereits @drakon darauf hingewiesen hat. Ansonsten würde der gleiche Fehler auch beim manuellen auftreten.
Ich habe es jetzt als PHP ausführen lassen, der Cronjob ruft dazu den Link per direkter URL auf. Scheint so zu funktionieren, hoffe ich. Woran würde ich denn erkennen, wenn die Cronjobs nicht arbeiten würden? AdminWorker ist deaktiviert.
Ja, mein Code sieht nahezu so aus, hab nur die Echos entfernt.