Fehlerbehebung
Maximum execution time of X seconds exceeded in x.php
Die Meldung:
Maximum execution time of X seconds exceeded in x.php
bestätigt, dass der Prozess das PHP-Limit max_execution_time erreicht hat. Datei und Zeile zeigen, wo der Timer abgelaufen ist, beweisen aber für sich allein nicht, welche Komponente die Zeit verbraucht hat.
Stellen Sie die genaue Aktion nach und prüfen Sie zuerst das Protokoll der Anwendung und von PHP. Bei einer langsamen, reproduzierbaren Anfrage nutzen Sie PHP X-Ray, um zu prüfen, ob sich die Zeit auf eine SQL-Abfrage, einen externen Aufruf, eine Funktion oder eine bestimmte Komponente konzentriert. Schließen Sie auch Schleifen, Wiederholungsversuche und unerwartete Datenmengen aus.
Erhöhen Sie das Limit nur, wenn die Operation legitim und begrenzt ist und vernünftigerweise mehr Zeit braucht. Prüfen Sie, welche PHP-Version den Pfad ausführt, öffnen Sie cPanel > Select PHP Version > Options und setzen Sie max_execution_time auf den kleinsten endlichen Wert, mit dem der Test abgeschlossen werden kann. Die Änderung betrifft alle Websites, die diese Version nutzen.
Erhöhen Sie den Wert nicht schrittweise, bis der Fehler verschwindet, und setzen Sie ihn nicht auf unbegrenzt. PHP nutzt diesen Timer als Schutz vor fehlerhaften Skripten. Außerdem können der Webserver und andere Komponenten eigene Timeouts anwenden.
Stellen Sie nach dem Test den vorherigen Wert wieder her. Schöpft der Prozess erneut einen vernünftigen Wert aus, korrigieren Sie die Operation oder die ermittelte Komponente, statt weiter zu erhöhen. Wenn Sie eine Ressourcenbegrenzung vermuten, prüfen Sie die protokollierten Fehler bei CPU, Speicher, Entry Processes, IO oder Prozessen: Ein hoher Verbrauch ohne Limit-Fehler beweist nicht, dass dieses Limit die Anfrage beendet oder verlangsamt hat.
PHP-Zeit und Gesamtzeit der Anfrage
Auf Unix-Systemen misst max_execution_time nicht unbedingt die gesamte vergangene Echtzeit: Wartezeiten bestimmter externer Operationen können herausfallen. Unter Windows verhält es sich anders. Deshalb lässt sich eine im Browser beobachtete Gesamtzeit nicht direkt mit diesem Limit vergleichen. Siehe die Definition von PHP.
Bei Importen oder langen Aufgaben sollten Sie erwägen, die Arbeit in Stapel aufzuteilen oder als kompatible CLI-Aufgabe mit Fehlerbehandlung und Fortschrittskontrolle auszuführen. Auch CLI kann eigene Limits haben und umgeht keine Kontingente des Hostings. Bevor Sie eine unterbrochene Operation wiederholen, prüfen Sie, welche Daten bereits gespeichert wurden, damit nichts doppelt entsteht.
Das könnte Ihnen auch helfen
- PHP-Fehler bei require_once, require, include_once oder include Lesen Sie die vollständige Meldung, wenn PHP eine Datei nicht öffnen kann, und prüfen Sie Pfad, Rech...
- Fehler in PHP-Anwendungen oder -Dateien debuggen Diagnostizieren Sie eine weiße Seite oder einen Fehler 500, indem Sie den Fehler nachstellen und zue...
- PHP-Fehler für eine bestimmte Datei protokollieren Erfassen Sie die Fehler einer einzelnen PHP-Datei in einem privaten, vorübergehenden Protokoll und l...
- PHP-Fehlerprotokoll in cPanel aktivieren Aktivieren Sie log_errors vorübergehend für die tatsächlich genutzte Version im PHP-Selektor von cPa...
Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.