Ausgangssituation: Shared Hosting (z.B. Strato), der Planer in TYPO3 ist installiert, aktiviert und die Tasks sind eingerichtet, ein Shell-Skript soll via Cronjob die Ausführung regelmäßig anstoßen. Der Aufruf des Shell-Skripts ist als Cronjob im Kunden-Login mit korrektem Pfad eingetragen, das Skript kann ausgeführt werden, d.h. die Rechte sind korrekt gesetzt.
Inhalt des Shell-Skripts:
#! /bin/bash
env -i /usr/bin/php -f /home/ordner-1/ordner-2/ordner-n/htdocs/ihre-domain/typo3/sysext/core/bin/typo3 scheduler:run
Beim Aufruf des Shell-Skripts erscheint die Fehlermeldung "Not called from a command line interface (e.g. a shell or scheduler)."
Ursache: Die aufgerufene PHP-Version in /usr/bin/ läuft offenbar im CGI-Modus.
Abhilfe: Es muss explizit eine im CLI-Modus laufende PHP-Version zur Ausführung des Skripts aufgerufen werden. Diese muss zur PHP-Version passen, die in TYPO3 verwendet wird (beide also z.B. PHP 7.4).
Inhalt des Shell-Skripts nach Anpassung:
#! /bin/bash
env -i /opt/RZphp74/bin/php-cli -f /home/ordner-1/ordner-2/ordner-n/htdocs/ihre-domain/typo3/sysext/core/bin/typo3 scheduler:run
Der Aufruf env -i sorgt dafür, dass vorher gesetzte Umgebungsvariablen ignoriert werden.