Ihre Website zeigt die Fehlermeldung "Maximum execution time of 30 seconds exceeded", oder Ihre Seite lädt endlos ohne Ergebnis. Das ist ein PHP-Timeout-Fehler: Ihr Skript braucht länger als die erlaubte maximale Ausführungszeit. In dieser Anleitung erklären wir, was das bedeutet und wie Sie das Problem lösen.

Was ist ein PHP-Timeout-Fehler?

PHP hat ein eingebautes Zeitlimit für die Ausführung von Skripten. Standardmäßig sind das 30 Sekunden (manchmal 60 oder 120 Sekunden, je nach Ihrer Hosting-Konfiguration). Dauert ein Skript länger, bricht PHP die Ausführung ab und zeigt folgende Fehlermeldung:

Fatal error: Maximum execution time of 30 seconds exceeded in /path/to/file.php on line 123

Dieses Zeitlimit dient als Schutz: Es verhindert, dass hängende Skripte Ihren gesamten Server überlasten. Bei legitimen Vorgängen (große Importe, Datenbankmigrationen, aufwendige Berechnungen) kann das Standardlimit jedoch zu niedrig sein.

Häufige Ursachen:

  • Große Datenbankabfragen: Abfragen, die Tausende von Zeilen verarbeiten
  • Datei-Uploads: große Dateien hochladen oder verarbeiten
  • Plugin- oder Theme-Vorgänge: Updates, Importe oder Exporte, die lange dauern
  • Externe API-Aufrufe: Verbindungen zu langsamen externen Diensten
  • Endlosschleifen: Programmierfehler, durch die ein Skript hängen bleibt
  • Aufwendige Bildverarbeitung: große Bilder skalieren oder konvertieren

PHP-Timeout als Website-Betreiber beheben

Folgen Sie den Schritten unten, um das PHP-Timeout zu erhöhen oder das zugrunde liegende Problem zu lösen.

1. max_execution_time über php.ini erhöhen

Der direkteste Weg, das Timeout zu erhöhen, führt über die Konfigurationsdatei php.ini:

max_execution_time = 300

Damit wird das Limit auf 300 Sekunden (5 Minuten) erhöht. Bei Shared Hosting können Sie oft eine .user.ini-Datei im Stammverzeichnis Ihrer Website mit derselben Einstellung anlegen.

2. Das Limit über wp-config.php erhöhen

Bei WordPress können Sie das Zeitlimit auch über wp-config.php festlegen:

set_time_limit(300);

Oder fügen Sie diese PHP-Einstellung hinzu:

ini_set('max_execution_time', 300);

Platzieren Sie diese Zeile in Ihrer wp-config.php oberhalb der Zeile /* That's all, stop editing!*/.

3. Über den PHP Selector in DirectAdmin erhöhen

Beim Hosting mit DirectAdmin können Sie die PHP-Einstellungen über das Control Panel anpassen:

  1. Melden Sie sich bei DirectAdmin an
  2. Gehen Sie zu Advanced Features → Select PHP Version (oder PHP Selector)
  3. Klicken Sie auf "Switch to PHP Options
  4. Suchen Sie max_execution_time und stellen Sie den Wert auf 300
  5. Klicken Sie auf "Save

4. Über .htaccess erhöhen

Auf Apache-Servern können Sie die Einstellung auch über .htaccess ändern:

php_value max_execution_time 300

Achtung: Das funktioniert nur mit mod_php, nicht mit PHP-FPM oder FastCGI. Bei PHP-FPM müssen Sie die php.ini oder die Pool-Konfiguration anpassen.

5. Das zugrunde liegende Problem optimieren

Das Erhöhen des Zeitlimits ist ein Workaround. Die eigentliche Lösung besteht oft darin, das Skript zu optimieren, das zu lange dauert:

  • Datenbankabfragen optimieren: Indizes hinzufügen, die Zahl der Ergebnisse mit LIMIT begrenzen, Paginierung verwenden
  • Stapelverarbeitung: große Datenmengen in kleinen Paketen statt alles auf einmal verarbeiten
  • Caching aktivieren: Ergebnisse aufwendiger Berechnungen im Cache speichern (Redis, Memcached)
  • Hintergrundaufgaben nutzen: aufwendige Vorgänge in eine Queue oder einen Cronjob verlagern
  • Externe Aufrufe beschleunigen: Timeouts für API-Aufrufe festlegen und asynchrone Verarbeitung nutzen

6. Auf Endlosschleifen prüfen

Wenn das Timeout immer wieder auftritt, auch nach dem Erhöhen des Limits, liegt möglicherweise ein Programmierfehler vor:

  • Aktivieren Sie WP_DEBUG, um die genaue Zeile zu finden
  • Prüfen Sie, ob es while/for-Schleifen ohne korrekte Abbruchbedingung gibt
  • Prüfen Sie rekursive Funktionsaufrufe auf einen fehlenden Basisfall
  • Deaktivieren Sie kürzlich installierte Plugins, um den Verursacher zu finden

Verwandte PHP-Einstellungen

Neben max_execution_time gibt es weitere zeitbezogene PHP-Einstellungen:

EinstellungStandardFunktion
max_execution_time30Maximale Ausführungszeit pro Skript (Sekunden)
max_input_time60Maximale Zeit für das Parsen von Eingaben (Sekunden)
memory_limit128MMaximaler Speicherverbrauch pro Skript
upload_max_filesize2MMaximale Dateigröße beim Upload
post_max_size8MMaximale Größe von POST-Daten

Bei einem VPS haben Sie die volle Kontrolle über all diese Einstellungen. Bei Shared Hosting sind manche Einstellungen durch Ihren Hosting-Anbieter eingeschränkt.

Häufig gestellte Fragen zu PHP-Timeout-Fehlern

Was bedeutet "Maximum execution time of 30 seconds exceeded"?

Diese Fehlermeldung bedeutet, dass ein PHP-Skript länger als 30 Sekunden gelaufen ist und vom Server abgebrochen wurde. Das Limit von 30 Sekunden ist der Standardwert der PHP-Einstellung max_execution_time. Sie können dieses Limit über php.ini, wp-config.php oder das Control Panel Ihres Hostingpakets erhöhen.

Ist es sicher, max_execution_time zu erhöhen?

Ja, eine Erhöhung auf 120-300 Sekunden ist für die meisten Websites sicher. Setzen Sie das Limit jedoch nicht auf unbegrenzt (0 = kein Limit), denn dann können hängende Skripte Ihren gesamten Server überlasten. Ein Wert von 300 Sekunden (5 Minuten) ist ein guter Kompromiss zwischen Funktionalität und Schutz.

Warum erhalte ich bei WordPress-Updates ein PHP-Timeout?

Bei Plugin- und Theme-Updates muss WordPress Dateien herunterladen, entpacken und installieren. Bei langsamen Internetverbindungen, großen Updates oder überlasteten Servern kann das länger dauern, als das Timeout erlaubt. Erhöhen Sie max_execution_time vorübergehend auf 300 Sekunden und versuchen Sie das Update erneut. Wenn das regelmäßig vorkommt, ziehen Sie auch ein Upgrade auf schnelleres Webhosting in Betracht.

Haben Sie wegen langsamen Hostings Probleme mit PHP-Timeouts? Sehen Sie sich unsere Webhosting-Pakete an, mit LiteSpeed und NVMe SSD für die schnellste PHP-Ausführung. Oder wählen Sie einen VPS mit voller Kontrolle über alle PHP-Einstellungen.