Aus der Anleitung zum Contao Cronjob Framework:
Cronjobs werden standardmässig immer dann ausgeführt, wenn jemand die Webseite besucht. Dies kann die Performance deiner Webseite negativ beeinflussen, weshalb empfohlen wird, echte Cronjobs auf dem Server einzurichten.
[...]
Der Cronjob dafür muss wie folgt aussehen:
* * * * * <php-binary> <contao-verzeichnis>/vendor/bin/contao-console contao:cron
Hier eine kleine Hilfestellung/Anleitung, wie dieser Cronjob bei Netcup Webhosting (Shared Hosting) im Plesk-Backend eingerichtet werden kann:
1) Verwendete PHP-Version ermitteln
Der CronJob sollte mit der selben PHP-Version ausgeführt werden, mit der Contao installiert wurde bzw. läuft.
Im Zweifelsfall einfach kurz den ContaoManager aufrufen. Direkt am Anfang, wenn der ContaoManager initialisiert wird, wird die verwendete PHP-Version genannt, zum Beispiel:
[...]
Serverkonfiguration
PHP-Binary in /usr/local/php83/bin/php.
[...]
2) Pfad zum Contao-Verzeichnis
Da der ContaoManager nun schon läuft, kann über das Menü unter Tools > PHP-Informationen die phpinfo abgerufen werden.
Ganz am Ende unter „Environment“ stehen die Pfade, zum Beispiel bei „COMPOSER_HOME“:
/var/www/vhosts/hostingXXXXXX.XXXXX.netcup.net/domainordner/httpdocs/installationsordner/contao-manager
Den Pfad kopieren und den hinteren Teil für den Aufruf der Contao-Console anpassen, zum Beispiel:
/var/www/vhosts/hostingXXXXXX.XXXXX.netcup.net/domainordner/httpdocs/installationsordner/vendor/bin/contao-console
(die Pfadbeispiele hier im Forum sind natürlich anonymisiert)
3) Aufgabe (= Cronjob) in Plesk anlegen
Netcup-spezifisch:
- Bei Netcup im „CCP“ (Kundenpanel) anmelden
- Im CCP-Menü zu „Produkte“ wechseln
- Auf das Lupen-Symbol neben dem Paket mit der Contaoinstallation klicken
- Unter „Globale Verwaltung und Konfigurationen des Webhostings“ bei „Plesk Panel-Links“ auf „Geplante Aufgaben“ klicken (es öffnet sich die Aufgabenverwaltung von Plesk in einem neuen Fenster)
Plesk Aufgabenverwaltung:
- Auf „+ Aufgabe hinzufügen“ klicken
- Bei „Aufgabentyp“ die Radio-Auswahl ändern auf „PHP-Skript ausführen“
- Bei „Skriptpfad“ den zuvor ermittelten Pfad eintragen, also beispielsweise
/var/www/vhosts/hostingXXXXXX.XXXXX.netcup.net/httpdocs/domainordner/installationsordner/vendor/bin/contao-console- in dem Feld daneben bei „mit Argumenten“ den Befehl eintragen: „contao:cron“ (ohne Anführungszeichen)
- Bei „zu verwendende PHP-Version“ in der Dropdown-Liste die zuvor ermittelte Version auswählen, beispielsweise „8.3“
- Bei „Ausführen“ im ersten Select-Dropdown die Auswahl von „Täglich“ ändern in „Cron-Stil“.
- In dem Freitextfeld daneben folgendes eingeben (ohne Anführungszeichen): „* * * * *“ (oder „0-59 * * * *“)
Damit wird diese Aufgabe minütlich ausgeführt.- Ggf. eine „Beschreibung“ angeben, zum Beispiel „Contao CronJob minütlich aufrufen“
- Ggf. die Benachrichtigungsoption ändern (oder einfach „Nicht benachrichtigen“ lassen)
- „OK“ klicken (man gelangt zurück zur Aufgabenübersicht)
Zum Testen in der Aufgabenübersicht rechts neben der neu angelegten Aufgabe auf „Jetzt ausführen“ klicken. Es sollte eine Bestätigungsmeldung eingeblendet werden, beispielsweise:
Die Aufgabe "/var/www/[...]/vendor/bin/contao-console" wurde erfolgreich in 1 Sekunden abgeschlossen.
Falls die Contao-Installation umzieht oder in einem anderen Unterordner neu installiert wird, muss diese Aufgabe entsprechend aktualisiert werden (Pfad zur Contao-Installation anpassen).