Heute habe ich einen cronjob eingerichtet, bei dem ein PHP-Skript ausgeführt werden sollte. Der Clou ist, dass ich Argumente an das Skript übergeben musste. Im Detail ging es um ein Update-Script für tt-rss. Doch egal, wie ich den Befehl versucht habe zu schreiben und zu verändern, der Updater lief nicht.
/usr/bin/php -f /var/www/html/tt-rss/update.php -- --feeds
Ein wenig debuggen im Updater-Skript hat dann weiter geholfen. Die Argumente kamen gar nicht an, das heißt, sie wurden nicht an das Skript übergeben. Dieses Verhalten kann nämlich in der php.ini über das Attribut register_argc_argv
an- und ausgeschaltet werden.
Wenn man ein PHP-Skript per cronjob ausführt, kann man diese Einstellung ebenfalls als Argument übergeben. Die Lösung lautet somit
/usr/bin/php -d register_argc_argv=On -f /var/www/html/tt-rss/update.php -- --feeds