Zurück

Cronjob funktioniert nicht

2 Min Lesedauer · Aktualisiert am 29.01.2024

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 crontab-generator.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 Version zur Zeit bei cyon Standard ist, wird dir jederzeit im my.cyon im Menü «Erweitert» unter «PHP-Versionsmanager» angezeigt.

Benötigt dein Script eine andere PHP-Version, so ergänze diese im Cronjob gemäss folgendem Beispiel. Ersetze dabei <phpXY> durch die gewünschte PHP-Version, beispielsweise php82 um das Script mit PHP 8.2 auszuführen.

/opt/alt/<phpXY>/usr/bin/php /home/<Anmeldename>/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/<Anmeldename>/etc/php_settings/conf.d" php /home/<Anmeldename>/public_html/phpscript.php

Ersetze dabei <Anmeldename> durch den Anmeldename 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/<Anmeldename>/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/<Anmeldename>/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
Technische Fragen zum Webhosting
Artikel teilen
E-Mail WhatsApp

Was dir auch helfen könnte

Verwandte Artikel

Du hast noch Fragen?

Wir beantworten sie dir gerne persönlich.

Kontaktiere uns