Cronjob funktioniert nicht
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