it-swarm.com.de

Probleme mit der Zlib-Komprimierung

Ich habe einige Probleme beim Ausführen der ZLIB-Komprimierung auf meiner Site.

Erstens, wenn ich die zlib-Komprimierung in .htaccess mit: php_value output_handler ob_gzhandler aktiviere, erhalte ich Tausende von Zeilen mit der folgenden Fehlermeldung:

PHP-Warnung: Header-Informationen können nicht geändert werden - Header, die bereits in Zeile 0 in Unknown gesendet wurden

Ich habe alle Dateien, die für Whitespace und andere Zeichen verwendet werden, mit einem Hex-Editor überprüft, aber ich konnte diesen Fehler nicht beheben, wenn zlib in .htaccess aktiviert war.

Aus diesem Grund habe ich versucht, die ZLIB-Komprimierung in der Datei php.ini zu aktivieren.

zlib.output_compression "1"
zlib.output_compression_level "1"

Allerdings wird mir jetzt von den Komprimierungsprüfern mitgeteilt, dass ich keine Komprimierung aktiviert habe, damit sie nicht im richtigen Format angezeigt wird.

2
Dan

Das erste, was Sie bedenken sollten, ist, dass Komprimierungsprüfer manchmal aus verschiedenen Gründen lügen. Nehmen Sie ihre Warnungen daher mit einem Schuss Salz. Wie einige Leute kürzlich über Stack Overflow gesagt haben, ist ySlow kein Evangelium (aber ich mag es selbst).

Was ich vorschlagen würde, anstatt zlib.output_compression in PHP zu verwenden, ist, mod_deflate in Apache zu aktivieren. Dadurch werden auch statische Dateien abgefangen und komprimiert (z. B. wenn Sie statische Textdateien/csv/xml bereitstellen möchten). Denken Sie daran, dass Sie die meisten Multimedia-Inhalte wie Bilder und Videos nicht komprimieren möchten, da der damit verbundene Overhead im Vergleich zur Reduzierung der Dateigröße (die praktisch null beträgt) proportional ineffizient ist.

Hier ist ein Beispiel, das für httpd2 relevant ist, aber es gibt viel mehr Optionen zur Auswahl (siehe Handbuch) :

<Location />
 # Insert filter
 SetOutputFilter DEFLATE

 # Netscape 4.x has some problems...
 BrowserMatch ^Mozilla/4 gzip-only-text/html

 # Netscape 4.06-4.08 have some more problems
 BrowserMatch ^Mozilla/4\.0[678] no-gzip

 # MSIE masquerades as Netscape, but it is fine
 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 # Don't compress images
 SetEnvIfNoCase Request_URI \
 \.(?:gif|jpe?g|png)$ no-gzip dont-vary

 # Make sure proxies don't deliver the wrong content
 Header append Vary User-Agent env=!dont-vary
</Location>
5
msanford