Fehlermeldung: 'ob_gzhandler' nicht doppelt benutzbar

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
deadbabylon
Mitglied
Beiträge: 10
Registriert: 28.01.2004 02:01

Fehlermeldung: 'ob_gzhandler' nicht doppelt benutzbar

Beitrag von deadbabylon »

Hi,
ich bekomme ab und zu beim Betreten des Admincenters folgende Fehlermeldung:

Code: Alles auswählen

Warning: (null)() [ref.outcontrol]: output handler 'ob_gzhandler' cannot be used twice in Unknown on line 0
Das einzige Mal, wo ich den String "ob_gzhandler" bisher gefunden habe, ist in der page_header.php. Dort steht der allerdings auch nur einmal.

Wo kann ich weitersuchen bzw. wie kann ich das beheben?

Gruß,
Sebastian
deadbabylon
Mitglied
Beiträge: 10
Registriert: 28.01.2004 02:01

Beitrag von deadbabylon »

Mhh, hier stand doch mal ein Hinweis eine Admins (?) drunter, dass ich die gzip-Komprimierung abschalten solle. Das hat jedenfalls bisher geholfen. Danke dafür und tschuldigung für die Verspätung, war ein paar Tage weg.
Benutzeravatar
Mungo
Administrator
Administrator
Beiträge: 6613
Registriert: 03.05.2003 19:34

Beitrag von Mungo »

Das kann schon sein, dass mit dem Hinweis...Die Festplatte unseres Servers hatte keine Lust mehr und ist am 6.2. in den Ruhestand gegangen :D d.h. da im Backup nicht alle Beitraege vorhanden waren, fehlen jetzt ein paar...
R. U. Serious
Mitglied
Beiträge: 153
Registriert: 11.10.2003 12:33
Kontaktdaten:

Beitrag von R. U. Serious »

Das Problem liegt darin begründet, dass man die gzip-Kompression in neueren Versionen an zwei Stellen einschalten kann (oder aber, dass sich die Default-Einstellung dieses Punktes in neueren Versionen geändert hat).

Man kann es nämlich einmal in jedem einzelnen Skript machen. Oder man kann es pauschal in der php.ini machen, und dann passiert es bei allen Skripts automatisch. Wenn letzteres aktiv ist, solltest du es logischerweise nicht mehr in deinen Skripten verwenden, was denn auch zu deinem beschriebenen Fehler führt.

Lösung: Entweder im Skript ausschalten (bei phpBB eben im AdminCP) oder die php.ini modifizieren:
; You can redirect all of the output of your scripts to a function. For
; example, if you set output_handler to "ob_gzhandler", output will be
; transparently compressed for browsers that support gzip or deflate encoding.
; Setting an output handler automatically turns on output buffering.
output_handler =
output_handler= sollte dann von Leere gefolgt sein.... ;)
deadbabylon
Mitglied
Beiträge: 10
Registriert: 28.01.2004 02:01

Beitrag von deadbabylon »

So, habs auch mal wieder hierher geschafft. :)

Danke für die Antworten, muss jetzt mal so in Ruhe durchgucken, ob irgendwer/was das in einem Script noch aktiviert hat. Ich wars meines Wissens jedenfalls nicht. Aber vielleicht der EMI.

Danke jedenfalls,
Sebastian
deadbabylon
Mitglied
Beiträge: 10
Registriert: 28.01.2004 02:01

Beitrag von deadbabylon »

So, kleiner Nachtrag:

ich hab "ob_gzhandler" zweimal in den Dateien auf meinen Board gefunden.


/phpbb2/admin/page_header_admin.php

Code: Alles auswählen

//
// gzip_compression
//
$do_gzip_compress = FALSE;
if ( $board_config['gzip_compress'] )
{
	$phpver = phpversion();

	$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;

	if ( $phpver >= '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) )
	{
		if ( extension_loaded('zlib') )
		{
			ob_start('ob_gzhandler');
		}
	}
	else if ( $phpver > '4.0' )
	{
		if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') )
		{
			if ( extension_loaded('zlib') )
			{
				$do_gzip_compress = TRUE;
				ob_start();
				ob_implicit_flush(0);

				header('Content-Encoding: gzip');
			}
		}
	}
}

/phpbb2/includes/page_header.php

Code: Alles auswählen

//
// gzip_compression
//
$do_gzip_compress = FALSE;
if ( $board_config['gzip_compress'] )
{
	$phpver = phpversion();

	$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;

	if ( $phpver >= '4.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) )
	{
		if ( extension_loaded('zlib') )
		{
			ob_start('ob_gzhandler');
		}
	}
	else if ( $phpver > '4.0' )
	{
		if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') )
		{
			if ( extension_loaded('zlib') )
			{
				$do_gzip_compress = TRUE;
				ob_start();
				ob_implicit_flush(0);

				header('Content-Encoding: gzip');
			}
		}
	}
}

Wenn ich die entsprechenden Einträge rausnehme, verschwinden die Fehlermeldungen im Forum bzw. ACP.
Ist dann gzip trotzdem noch aktiviert bzw. hat das evtl. andere Nachteile? Oder ist es genau das, was gemeint war?
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Nein, gZip ist jetzt nicht mehr aktiv. Es wäre aber "besser", wenn du den Code wieder reinsetzt und das gZip dann im Adminpanel deaktivierst.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“