Maximale PHP-Ausführungszeit in WordPress überschritten

Maximale PHP-Ausführungszeit in WordPress überschritten

Ein Produktimport bricht nach einigen Tausend Zeilen wegen der maximalen Ausführungszeit ab. Ein höheres PHP-Limit lässt den Auftrag etwas weiterlaufen, doch der Importer verarbeitet alles in einer einzigen Anfrage und der Proxy beendet sie früher. Eine größere Zahl macht diesen Ablauf nicht zuverlässig. Zuerst muss geklärt werden, welche Schicht abbricht und ob sich der Auftrag sicher aufteilen und fortsetzen lässt.

Inhalt

Was die maximale Ausführungszeit begrenzt

max_execution_timebegrenzt je nach Umgebung die Laufzeit eines PHP-Prozesses. Ein WordPress-Auftrag kann zusätzlich durch Webserver, Proxy, Prozessmanager, Queue, Datenbank, externe API oder Client beendet werden. Frontend, wp-admin, AJAX, REST, Cron und WP-CLI können unterschiedliche Konfigurationen laden. Der Fehler belegt daher nur, dass in einem bestimmten Kontext eine Grenze erreicht wurde.

Ein realistisches Beispiel

Ein Import benötigt pro Batch 40 Sekunden und funktioniert über WP-CLI, bricht aber im Browser nach 30 Sekunden ab. Der PHP-Wert beträgt 120 Sekunden; tatsächlich greift also eine vorgelagerte Grenze. Statt PHP weiter zu erhöhen, wird der Import in kleinere, wiederaufnehmbare Batches aufgeteilt und als Hintergrundauftrag ausgeführt. Der Fortschritt wird über die letzte verarbeitete ID gespeichert, sodass ein Abbruch keine bereits verbuchten Datensätze wiederholt.

Wann eine Erhöhung sinnvoll ist

Eine moderate Erhöhung kann vertretbar sein, wenn ein endlicher, messbar fortschreitender Auftrag knapp mehr Zeit benötigt und sich nicht sinnvoll weiter teilen lässt. Sie ist keine Lösung für blockierte Abfragen, Speicherwachstum, langsame externe Dienste oder fehlende Wiederaufnahme. Steigen Last und Sperrzeiten oder werden Nebenwirkungen doppelt ausgeführt, muss der Ablauf umgestaltet statt verlängert werden.

Sicherer Einstieg

Sichern Sie die betroffenen Daten und reproduzieren Sie den Fehler mit einem kontrollierten Datensatz. Notieren Sie Fatal-Error, Laufzeit, verarbeitete Einheiten und den betroffenen Ausführungskontext. Prüfen Sie, ob das eingesetzte Plugin Batches, Hintergrundverarbeitung oder WP-CLI unterstützt. Verwenden Sie diese Möglichkeiten bevorzugt. Erhöhen Sie kein öffentliches Anfrage-Limit unbegrenzt.

Technische Diagnose

Vergleichen Sie den effektiven PHP-Wert mit den Timeouts von Webserver, Proxy und Prozessmanager. Profilieren Sie je Batch Datenbankabfragen, externe Aufrufe, Arbeitsspeicher und I/O. Legen Sie eine feste Batch-Größe, ein Zeitbudget unterhalb der kürzesten Grenze und eine eindeutige Fortsetzungsmarke fest. Unterbrechen Sie einen Test bewusst und prüfen Sie, ob er ohne doppelte E-Mails, Bestellungen oder externe Aufrufe fortgesetzt wird.

Risiken und Rollback

Lange Webanfragen können Worker binden, Sperren halten und andere Besucher beeinträchtigen. Ein höheres Limit verschiebt dann nur den Abbruch. Dokumentieren Sie angeforderten und effektiven Wert sowie die steuernde Schicht. Setzen Sie eine testweise Änderung zurück, wenn Last, Laufzeit oder Fehlerbild sich verschlechtern. Bleibt die Servervorgabe unverändert, nutzen Sie die unterstützte Hosting-Konfiguration oder reduzieren Sie den Arbeitsumfang.

AIOWS-Modul

Wie AIOWS PHP Limits bei der Prüfung hilft

AIOWS PHP Limits kann aktive PHP-Limits anzeigen, Änderungen versuchen, die von der Serverumgebung unterstützt werden, und bei der Prüfung des effektiven Ergebnisses helfen. So lässt sich unterscheiden, ob ein gewünschter Wert tatsächlich im getesteten Kontext gilt.

Eine Hosting-Vorgabe lässt sich nicht garantiert überschreiben; auch Proxy- oder Webserver-Timeouts werden dadurch nicht automatisch geändert. Das Modul kann außerdem keinen blockierten oder ineffizienten Auftrag reparieren.

Ermitteln Sie zunächst den fehlerhaften Kontext und prüfen Sie Batching sowie Wiederaufnahme. Versuchen Sie erst dann eine moderate Änderung und wiederholen Sie denselben kontrollierten Auftrag. Halten Sie angeforderten und wirksamen Wert getrennt fest.

AIOWS PHP Limits ansehenAIOWS-Tarife vergleichen

Fazit

Belegen Sie zuerst, dass der Auftrag endlich ist und fortschreitet. Unterstützte Batches, Wiederaufnahme, Hintergrundverarbeitung oder WP-CLI sind einer sehr langen Webanfrage vorzuziehen. Eine moderate PHP-Anpassung ist nur dann sinnvoll, wenn sie im richtigen Kontext wirksam wird und vorgelagerte Grenzen den Auftrag nicht früher beenden.

Quelle

Ähnliche Beiträge

All in One WP Settings holenZum Plugin