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 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>
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