In diesem Beitrag verrate ich dir, wie du einen richtigen WordPress Cronjob bei 1&1 genauer gesagt Ionos oder auf Linux-Servern mit SSH Zugriff einrichten kannst.
Ich beschäftige mich schon eine Weile mit der Technik von WordPress und verwende das System auch gerne mal, um kleinere Websites damit zu erstellen. Beim Aufbau des Blogs54 Netzwerkes sind mir so einige Probleme im Zusammenhang mit Ionos über den Weg gelaufen. Unter anderem automatische Cronjob von WordPress.
Warum einen richtigen WordPress Cronjob?
Zwar bietet Ionos mittlerweile auch einen Cronjob Manager im Kunden-Account, aber der kann nur rudimentäre Zeiteinstellungen. Über den Shell-Zugriff per SSH kann man hier den echten Cronjob des Betriebssystems nutzen.
Für einige Plugins ist es von Vorteil, einen echten Cronjob zu verwenden. Wie man diesen konfiguriert, ist in vielen Tutorials im Internet zu finden. Nur leider nicht in Verbindung mit einem Shared-Hosting Paket von 1&1 genauer gesagt Ionos. Entgegen der meisten Ansichten, dass man auf einem Shared-Hosting Paket keine vernünftiges WordPress-System betreiben kann, kann ich nur sagen, dass es problemlos möglich ist.
Dieser Blog hier läuft auf einem solchen Paket bei Ionos. Ein Shared-Hosting Paket ist um einiges günstiger als ein eigener Root-Server. Man muss nur darauf achten, dass man genügend Speicher für die Skript-Abarbeitung zur Verfügung gestellt bekommt.
Anpassungen am WordPress
Als Erstes musst du dein WordPress für den Einsatz eines echten Cronjobs umstellen. Dafür musst du nachfolgenden Code in die Datei config.php im Hauptverzeichnis deiner WordPress-Installation einfügen.
define('DISABLE_WP_CRON', true);
Damit hast du jetzt den Presto-Cronjob von WordPress deaktiviert und er belastet nicht mehr deine Seiten abrufe.
Den WordPress Cronjob einrichten
Nur aber zum Einrichten unseres neuen Cronjob. Bei Ionos ist es erst bei den etwas größeren Paketen möglich, einen echten Cronjob einzurichten. Ich verwende hier gerne den Aufruf über die Linux Anweisung WGET.
Als Erstes musst du dich per SSH an dem Server anmelden. Das geht unter Windows am besten mit dem Programm Putty. Die SSH-Login Daten findest du bei Ionos im Bereich, wo du deine FTP Zugänge einrichten kannst.
Wenn du Zugriff auf die Kommandozeile des Servers hast, kannst du den Befehl „crontab -e“ eingeben. Jetzt öffnet der Server die Crontab-Datei mit dem Standard Kommandozeilen-Editor „vi“ und zeigt dir den Inhalt der Cron-Datei an.
Um dort jetzt etwas einzutragen, musst du mit der Taste i in den Einfügen-Modus wechseln. Jetzt kannst du nachfolgenden Befehl an das Ende der Datei einfügen. Achte strikt auf die Leerzeichen, das ist wichtig.
*/30 * * * * /usr/bin/wget -O - -q https://DEIN-WORDPRESS.DE/cron.php?doing_wp_cron > /dev/null 2>&1
Den Domainnamen DEIN-WORDPRESS.DE musst du natürlich mit deiner Domain ersetzen, das muss ich nicht extra erwähnen.
Durch den Parameter -O – mit einem zusätzlichen Bindestrich wird Wget angewiesen, die auszugebende HTML-Datei auf die Standard-Ausgabe umzuleiten. Der Parameter -q bewirkt, dass keine Informationen von Wget ausgegeben werden.
Was die Sternchen in der Anweisung bedeuten, kannst du hier auf der in der Beschreibung des Linux-Cronjobs auf Ubuntuusers nachlesen. Eine detaillierte Anleitung zu WGET gibt es ebenfalls auf Ubuntuusers.
Alternative Cron-Aufrufe
Alternative 1 – Aufruf über Curl
Alternativ kannst du den Cron-Aufruf auf mit der Linux-Anweisung CURL umsetzen. Curl ist eine ähnliche Linux Anwendung wie Wget und bei den meisten Webserver installiert. Eine Anleitung zu Curl findest du auf Ubuntuusers.
*/30 * * * * /usr/bin/curl -s https://DEIN-WORDPRESS.DE/cron.php?doing_wp_cron > /dev/null 2>&1
Der Parameter -s steht für Silent/Stumm und bewirkt, dass Curl keinerlei Ausgaben erzeugt, auch nicht bei Fehler.
Alternative 2 – Aufruf über PHP
Als zweite Alternative gibt es auch die Möglichkeit, die Datei wp-cron.php auch direkt vom PHP-Interpreter ausführen zu lassen. Das hat dann natürlich den Vorteil, dass man nicht an die Skriptausführzeiten des Webservers gebunden ist und die Ausführung obendrein noch schneller ist. Hier muss man allerdings die richtige PHP-Version angeben, die man auch auf der Webseite verwendet. Bei späteren Änderungen der PHP Version vergisst man den Cronjob häufig.
*/30 * * * * /usr/bin/php8.1-cli /kunden/homepages/htdocs/MEIN-BLOG-VERZEICHNISS/wp-cron.php > /dev/null
Welche PHP-CLI Version du angeben musst, findest du hier auf den Hilfe-Seiten von Ionos.
Bei dem Aufruf über den direkten PHP-Parser ist allerdings der absolute Pfad auf den Server anzugeben. Hier spielt die Domain natürlich keine Rolle, da die Datei direkt von der Festplatte des Servers aufgerufen wird.
Fazit
Einen richtigen Cronjob bei Ionos einzurichten ist nicht schwer, aber man muss wissen, wie das auf den Servern von Ionos gemacht werden muss.
Nizza Post.
Wenn jemand muss leistungsfähiger und häufig ausführen Cron-Jobs, https://www.easycron.com ist gute Ergänzung.