TYPO3 Scheduler / Planer: Cronjobs bei Mittwald

Seit auf dem Mittwald-Server eines Kunden OPcache läuft, scheiterte der Aufruf des TYPO3 Scheduler (Planer) per Cronjob – und legte mit einem Fatal Error dabei auch noch die gesamte Website lahm. Das soll nicht sein. Also: Auf diese Weise lässt sich der Scheduler per Mittwald-Cronjob aufrufen ...

Anforderungen in TYPO3:

Um den Scheduler (zu deutsch: Planer) einzurichten, legt man in TYPO3 zunächst einen Backend-User mit Namen _cli_scheduler an. Dieser Nutzer braucht keine Rechte (und darf keinesfalls admin sein), und das Passwort kann man auch sofort wieder vergessen, das braucht man nicht wieder. Außerdem muss die Datei typo3/cli_dispatch.phpsh ausführbar sein. Das ist aber eigentlich immer der Fall, denn TYPO3 legt sie mit den notwendigen Rechten (750) selbst im Verzeichnis /typo3/ an. Jetzt noch schnell im TYPO3-Backend den Punkt Scheduler (im englischen Backend) oder Planer (bei deutschem Backend) aufrufen und aus dem Pulldown-Menü den Setup Check aufrufen: Wenn alles grün leuchtet, ist alles im grünen Bereich.

Aufruf per cronjob bei Mittwald:

Mit Einsatz des OPcache hat sich die Art geändert, wie man bei einem Managed Server von www.mittwald.de einen cronjob einrichtet, der den TYPO3 Scheduler in festen Abständen automatisch aufruft. Man muss jetzt:

1) Ein Shell-Skript auf dem Server anlegen – Name z.B. domain_tld-scheduler.sh – mit folgendem Inhalt: 

 

#!/bin/bash
/usr/local/bin/php_cli /home/www/KUNDENNR/html/PFAD/ZUR/WEBSITE/typo3/cli_dispatch.phpsh scheduler

Dabei müssen KUNDENNR und PFAD/ZUR/WEBSITE/ natürlich individuell angepasst werden. Wichtig ist, dass der in der Datei angegebene Pfad zum cli_dispatch.psph im Rootverzeichnis beginnt, also /home/www/ einschließt. Und: Der Pfad zum Shell-Skript muss durch den Webseiten-Ordner führen. Das ist deshalb erwähnenswert, weil der Ordner /typo3/ ja normalerweise über einen Dateisystem-Link eingebunden wird. Der angegebene Pfad muss diesem Link folgen. Falls auf dem Server mehrere Webseiten liegen, für die ein Planer-Task gestartet werden soll, müssen im Shell-Skript also mehrere Aufrufe mit unterschiedlichen Pfadangaben angegeben werden.

2) Danach per SSH auf dem Server einloggen und mit dem Shell-Komando chmod +x domain_tld-scheduler.sh die neu angelegte Datei ausführbar machen.

3) Jetzt kann man sich im Kundencenter von Mittwald einloggen und übers Menü Server > Tools > Cronjobmanager einen neuen cronjob einrichten. Dort "Serverseitiger Aufruf" anklicken und den Pfad zum angelegten Shell-Skript eingeben. Dieser Pfad ist relativ vom eigenen User-Verzeichnis aus, d.h. hier ohne /home/www/KUNDENNR/ anzugeben. Da der Parameter "scheduler" für den bereits im Shell-Skript steht, muss (und darf) man ihn hier nicht angeben.

Nun noch den Haken bei "Cronjob aktivieren" setzen, ggf. eine Mailadresse für Fehlerbenachrichtigungen angeben, Zeiten der Ausfürhung festlegen – und fertig.