Zurück

Cronjob funktioniert nicht

2 Min Lesedauer · Aktualisiert am 31.12.2021

Hast du im my.cyon einen Cronjob eingerichtet und der erledigt seine Arbeit nicht wie gewünscht? In diesem Artikel beschreiben wir einige Tipps zur Fehlerbehebung.

Fehlerhafter Befehl

Prüfe als erstes den Befehl, der ausgeführt werden soll. Oft schleicht sich ein fehlerhaftes Zeichen im Feld «Befehl» ein, oder man hat sich im Ausführungszeitpunkt vertan. Die Seiten crontab.guru oder corntab.com bieten dazu ausführliche Hilfestellungen.

PHP-Version

Cronjobs werden immer in der PHP-Standardversion ausgeführt. Prüfe, ob dein Script vielleicht für eine andere PHP-Version ausgelegt ist. Welche PHP-Version zur Zeit bei cyon Standard ist, kannst du dem Artikel «Verfügbarkeit einer PHP-Version» entnehmen.

Du kannst in diesem Fall die von der Kommandozeile verwendete Standardversion gemäss «PHP-Standardversion über Kommandozeile festlegen» ändern.

Alternativ kannst du im Cronjob ergänzen, welche PHP-Version bei der Ausführung verwendet werden soll. Hier ein Beispiel mit Version 7.4.

/usr/local/bin/php74 /home/<Benutzername>/public_html/phpscript.php

Script benötigt eine eigene php.ini

Benötigt das Script spezielle PHP-Einstellungen, kannst du diese in einer eigenen php.ini-Datei hinterlegen, gemäss dem Artikel «Eigene php.ini verwenden». Passe den Cronjob wie folgt an, um die php.ini bei der Ausführung des Befehls zu verwenden.

PHP_INI_SCAN_DIR=":/home/<Benutzername>/etc/php_settings/conf.d" php /home/<Benutzername>/public_html/phpscript.php

Ersetze dabei <Benutzername>  durch den Benutzernamen deines Webhostings.

Script findet die includes nicht

Wenn du eine Fehlermeldung ähnlich der folgenden erhältst, sind die mit einbezogenen Dateien und Scripts nicht korrekt gesetzt.

Fatal error: require_once(): Failed opening required '../includes/functions.php' (include_path='.') in /home/<Benutzername>/pfadzumscript/script.php on line 442

In diesem Fall musst du in deinem Script die absoluten Pfade zu den vom Script benötigten Dateien angeben. Ändere dazu den relative Pfad ../includes/functions.php auf einen absoluten Pfad /home/<Benutzername>/public_html/includes/functions.php.

Script mit cURL ausführen

Alternativ zu PHP kannst du versuchen, das Script mit cURL über HTTP aufzurufen.

curl http://ihredomain.ch/script.php > /dev/null 2>&1

Kategorien

Was dir auch helfen könnte

Verwandte Artikel

Du hast noch Fragen?

Wir beantworten sie dir gerne persönlich.

Kontaktiere uns