badger
Goto Top

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

Content-Key: 356985

Url: https://administrator.de/contentid/356985

Printed on: April 23, 2024 at 08:04 o'clock

Member: StefanKittel
StefanKittel Dec 05, 2017 at 06:50:15 (UTC)
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
Member: Badger
Badger Dec 05, 2017 at 08:46:43 (UTC)
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
Member: LordGurke
LordGurke Dec 05, 2017 updated at 10:07:21 (UTC)
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.
Member: Badger
Badger Dec 05, 2017 at 12:37:58 (UTC)
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?