Wie ersetzt man den integrierten Cron-Job von WordPress durch die geplanten Aufgaben in cPanel?

cPanel 3 Min. Lesezeit

Wenn Ihre WordPress-Seite gelegentlich langsamer lädt oder Ihre geplanten Beiträge nicht rechtzeitig erscheinen, liegt dies häufig am integrierten WordPress-Timer, dem WP-Cron. Bei einem cPanel-Hosting-Paket können Sie diesen durch einen echten, vom Server gesteuerten Zeitplan ersetzen.

Was ist WP-Cron und worin liegt das Problem?

WordPress führt seine zeitgesteuerten Aufgaben (geplante Beiträge, Suche nach Updates, Wartungsaufgaben für Plugins, E-Mails des Online-Shops) über die Datei „wp-cron.php“ aus. Diese richtet sich jedoch nicht nach der Serveruhr: Sie wird erst gestartet, wenn jemand eine Seite aufruft. Dies hat folgende Konsequenzen:

  • Wenn gerade keine Besucher auf der Seite sind, verzögern sich die Aufgaben (beispielsweise wird ein für Mitternacht geplanter Beitrag erst beim ersten Besuch am Morgen angezeigt);
  • Auf einer stark frequentierten Website wird es unnötig oft ausgeführt, und diese Ausführung verlangsamt das Laden der Seite für den jeweiligen Besucher;
  • Aufgrund bestimmter Cache-Plugins oder fehlerhafter DNS-Einstellungen lässt sich der Dienst überhaupt nicht starten.

Die Lösung: WP-Cront wird deaktiviert, und die Cron-Aufgabe des Servers ruft die Funktion regelmäßig auf, beispielsweise alle 15 Minuten. (Informationen zur allgemeinen Verwendung von Cron finden Sie im Artikel über zeitgesteuerte Aufgaben (Cron-Jobs) in cPanel.)

Der einfachste Weg: WP Toolkit

Wenn WordPress über das WP Toolkit verwaltet wird (Menüpunkt „WordPress-Verwaltung“ in cPanel), aktivieren Sie bitte in der Website-Übersicht unter dem Abschnitt „Leistung“ die Option „wp-cron.php übernehmen“. Das WP Toolkit deaktiviert in diesem Fall WP-Cron automatisch und richtet stattdessen die serverseitige Zeitplanung ein; die folgenden manuellen Schritte sind nicht erforderlich.

Manuelle Einrichtung im Menüpunkt „Cron-Aufgaben“

  1. Melden Sie sich bei cPanel an und klicken Sie in der Gruppe „Erweitert“ auf den Menüpunkt „Cron-Aufgaben“.

    cPanel-Spezialgruppe: Cron-Aufgaben

  2. Legen Sie im Abschnitt „Neuen Cron-Job hinzufügen“ den Zeitplan fest. Für eine Ausführung alle 15 Minuten wählen Sie aus der Liste neben dem Feld „Minute“ die Option „Einmal alle 15 Minuten (*/15)“ aus; in den übrigen Feldern („Stunde“, „Tag“, „Monat“, „Wochentag“) belassen Sie die Einstellung „*“ (jeder).
  3. Geben Sie in das Feld „Befehl“ einen der folgenden Befehle ein (ersetzen Sie „felhasznalonev“ durch Ihren cPanel-Benutzernamen und „mappa“ durch Ihren WordPress-Ordner; bei der Hauptdomain ist dies „public_html“):

    Mit PHP, direkt (empfohlen, unabhängig von DNS und Webserver):

    /usr/local/bin/php /home/felhasznalonev/public_html/wp-cron.php > /dev/null 2>&1
    

    Mit WP-CLI (führt nur die anstehenden Aufgaben aus):

    /usr/local/bin/wp cron event run --due-now --path=/home/felhasznalonev/public_html > /dev/null 2>&1
    

    Geben Sie die Website-Adresse ein, falls die oben genannten Optionen aus irgendeinem Grund nicht funktionieren:

    wget -q -O - https://pelda.hu/wp-cron.php?doing_wp_cron > /dev/null 2>&1
    

    Aufgrund des Teils > /dev/null 2>&1 versendet das System nicht bei jedem Durchlauf eine E-Mail.

  4. Klicken Sie auf die Schaltfläche „Neue Cron-Aufgabe hinzufügen“.

    cPanel-Cron-Aufgaben: Die Aufgabe „wp-cron.php“, die alle 15 Minuten ausgeführt wird

Die Aufgabe wird am Ende der Seite in der Liste „Aktuelle Cron-Aufgaben“ angezeigt, wo Sie sie über die Links „Bearbeiten“ und „Löschen“ ändern können.

Aktuelle Cron-Aufgaben: die erstellte Aufgabe

Deaktivierung von WP-Cron

Falls die Cron-Aufgabe des Servers bereits ausgeführt wird, deaktivieren Sie bitte den integrierten Timer von WordPress, da andernfalls beide Aufgaben gleichzeitig ausgeführt würden. Fügen Sie dazu in der Datei „wp-config.php“ im Stammverzeichnis von WordPress vor der Zeile „/* That's all, stop editing! */“ folgenden Eintrag ein:

define('DISABLE_WP_CRON', true);

Sie können die Datei im cPanel-Dateimanager bearbeiten (Dateimanager).

Überprüfung

  • Planen Sie einen Testbeitrag für einige Minuten später ein und prüfen Sie, ob er nach dem nächsten Cron-Lauf angezeigt wird.
  • Auf der Seite „WordPress-Tools › Website-Zustand“ wird angezeigt, wenn geplante Ereignisse verspätet sind.
  • Sollte der Befehl eine Fehlermeldung ausgeben, entfernen Sie vorübergehend den Teil „> /dev/null 2>&1“ am Ende und geben Sie im Feld „Cron-E-Mail“ Ihre E-Mail-Adresse ein: Sie erhalten dann die Ausgabe des nächsten Durchlaufs per E-Mail.
Zurück: cPanel-Artikel (43)