Simply Static hat eine Diagnose-Seite. Sie prüft, ob alles bereit ist: Schreibrechte, PHP-Version, Berechtigungen der Datenbank. Eine Zeile blieb rot: WP-CRON. „WordPress cron is not available and not running“, stand dort.
Ich hatte den Cron selbst ausgeschaltet. Cron ist der Wecker von WordPress. Er stößt geplante Aufgaben an, zum Beispiel den Export. Standardmäßig tickt er nur, wenn jemand die Seite besucht. Auf meinem Server übernimmt das ein Systemdienst, der alle fünf Minuten klingelt. Den eingebauten Wecker habe ich dafür abgestellt.
Die Diagnose sieht nur den abgestellten Wecker und schlägt Alarm. Von meinem Systemdienst weiß sie nichts. Im Quelltext des Plugins stand ein Weg, ihr das mitzuteilen: eine Konstante namens SS_CRON in der wp-config.php, der Konfigurationsdatei von WordPress. Eine Einstellung in der Oberfläche hatte ich zuerst nicht gefunden, also schrieb ich die Konstante dort hinein. Die Zeile wurde grün.
Später fiel mir auf: Simply Static hat dafür einen eigenen Schalter, ganz unten im Bereich „Debug“. Er sagt dem Plugin dasselbe, nur an einer Stelle, an der man es sucht. Ich habe ihn eingeschaltet und die Konstante wieder gelöscht. Die Zeile blieb grün. Eine Sorge weniger in der Konfigurationsdatei, und die Einstellung steht dort, wo sie hingehört.
Zeig mir, wie es geht: Server-Cron im Debug-Bereich
- Die Prüfung steht in
simply-static/src/class-ss-diagnostic.php, Funktionis_wp_cron_running(). Sie meldet einen Fehler, wennDISABLE_WP_CRON === truegilt und weder die KonstanteSS_CRONnoch die Optionserver_crongesetzt ist. - Der Schalter heißt „Server-side cron job“ und steht in Simply Static unter Einstellungen → Debug, ganz unten. Die Beschriftung kann je nach Sprache und Version abweichen. Nach dem Einschalten speichern.
- Das Plugin definiert
SS_CRONselbst, sobald die Optionserver_cronaktiv ist (simply-static.php, Zeile 92 f.). Steht die Konstante zusätzlich in derwp-config.php, meldet WP-CLI bei jedem AufrufConstant SS_CRON already defined. Das ist der Hinweis, dass die Zeile in der Datei entfallen kann. - Zeile entfernen:
vi /data/terruhn.it/kisp/wordpress/wp-config.php
Die Zeile define( 'SS_CRON', true ); löschen und speichern.
- Syntax prüfen:
docker compose -f /data/terruhn.it/kisp/compose.yaml exec wordpress php -l /var/www/html/wp-config.php
- Simply Static → Diagnose neu laden. Zeigt die Seite noch den alten Stand, liegt das am zwischengespeicherten Ergebnis.
DISABLE_WP_CRONbleibt in derwp-config.phpstehen. Der Systemdienstkisp-wp-cron.timerübernimmt weiterhin alle fünf Minuten.