badger

Wordpress: ob end flush

Hallo Leute,

ich habe wie viele andere bei Wordpress bei einigen Plugins (z.B. dieses) das Problem, dass bei aktivierten gzip die Fehlermeldung
Notice: ob_end_flush(): failed to send buffer of zlib output compression
zu sehen ist.

Habe auch dazu schon den Workaround
remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 );
gefunden, der auch einwandfrei funktioniert.

Was ich allerdings nicht gefunden habe sind zwei Sachen:
1) Warum tritt dieser Fehler überhaupt auf? Würde dieses Problem lieber bei der Wurzel bekämpfen anstatt mit einem Workaround.
2) Welche Nebenwirkungen können durch die remove_action[...] auftreten? Habe dazu leider nichts passendes gefunden.

Besten Dank für eure Hilfe
Patrick
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 356985

Url: https://administrator.de/forum/wordpress-ob-end-flush-356985.html

Ausgedruckt am: 05.06.2025 um 01:06 Uhr

StefanKittel
StefanKittel 05.12.2017 um 07:50:15 Uhr
Goto Top
Moin,

welche PHP-Version?
Das soll vor allem ein Problem mit PHP 5.4 sein.
Ob es mit PHP 7 noch auftritt weiß ich nicht.

Eigentlich sollte es damit kein Problem geben "können".
Die Kompression funktioniert ja genau wie ob. Erst wenn die gesammte Ausgabe der Seite fertig ist, wird diese kompromiert und an den Browser gegeben. Ich könnte mir vorstellen, dass zlib denkt die Seite wäre fertig und dann kommt später doch noch was und keiner weiß wohin.

Stefan
Badger
Badger 05.12.2017 um 09:46:43 Uhr
Goto Top
Tritt sowohl mit 5.6 als auch mit 7.1 auf.

Interessant ist, dass die Fehlermeldung sowie eine damit verbundene Funktionseinschränkung des Plugins nur auftritt, wenn der Debug-Modus aktiviert ist. Deaktiviere ich diesen, läuft das Plugin ohne Probleme.

Grüße
Patrick
LordGurke
LordGurke 05.12.2017 aktualisiert um 11:07:21 Uhr
Goto Top
Das sieht danach aus, als wenn du in PHP selbst die Ausgabe komprimierst.
Wenn du das dort ausschaltest und stattdessen auf die Kompressions-Fähigkeiten des Webservers setzt, sollte das Problem verschwinden.
Diese Vorgehensweise ist überhaupt empfohlen, weil andernfalls keine "chunked"-Übertragung möglich ist, bei der immer wieder kleine Häppchen zum Client übertragen werden (z.B. durch ob_end_flush getriggert) und damit der Seitenaufbau subjektiv schneller geht.
Badger
Badger 05.12.2017 um 13:37:58 Uhr
Goto Top
Wenn ein Plugin eine Kompression verwendet, werde ich dies nicht so einfach aushebeln können.
In meinem Fall: Bei Timely könnte man eine eigene Kompression verwenden, habe ich aber deaktiviert.

Interessant ist halt für mich, dass dieses Fehlverhalten nur auftritt wenn:
  • zlib.output_compression nicht gleich 0
  • WP_DEBUG = true

Was hat der Debug-Modus damit zu tun?