Probleme gzip ans laufen zu bekommen

Lillyfu

New Member
Grüß euch,

ich versuche gerade Gzip ans laufen zu bekommen für einen Blog.
Debian 8
PHP 7.1.3

root@rs:~# a2enmod deflate
Considering dependency filter for deflate:
Module filter already enabled
Module deflate already enabled

phpinfo() sagt das es aktiviert ist
Phar-based phar archives enabled
Tar-based phar archives enabled
ZIP-based phar archives enabled
gzip compression enabled
bzip2 compression enabled
Native OpenSSL support enabled

In meiner .htaccess habe ich folgendes stehen

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif "access plus 7 days"
ExpiresByType image/ico "access plus 7 days"
ExpiresByType image/jpeg "access plus 7 days"
ExpiresByType image/jpg "access plus 7 days"
ExpiresByType image/png "access plus 7 days"
ExpiresByType text/css "access plus 7 days"
ExpiresByType text/javascript "access plus 7 days"
ExpiresByType application/x-javascript "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
</IfModule>

Dennoch sagen diverse Tests das es nicht aktiviert ist. Auch in den Errorlogs finden sich was
[Mon Apr 03 13:44:21.286887 2017] [php7:warn] [pid 22671] [client 95.170.73.141:60919] PHP Warning: ob_start(): output handler 'ob_gzhandler' cannot be used twice in /var/www/theme/wp-content/themes/theme/core/header.php on line 3
 
Code:
 [Mon Apr 03 13:44:21.286887 2017] [php7:warn] [pid 22671] [client 95.170.73.141:60919] PHP Warning: ob_start(): output handler 'ob_gzhandler' cannot be used twice in /var/www/theme/wp-content/themes/theme/core/header.php on line 3

So wie ich die Meldung verstehe: Der ob_gzhandler kann nur einmal verwendet werden. Wenn du gzip deaktivierst, verschwindet die Meldung dann?
 
Du verwechselst 3 Sachen miteinander.

Apache mod_deflate ist ein _webserver_ seitiger Gzip-Kompressor welcher komplett mime-type basierend ist und sowohl für statische als auch dynamische Inhalte funktioniert. Du musst einstellen welche Dateien komprimiert werden dürfen. Hinweis; es darf nicht in der htaccess oder directory-Listing sein damit es korrekt funktioniert.

PHP ob_gzhandle ist ein PHP-seitiger GZIP-Kompressor welche PHP-generierte Ausgaben komprimiert. Dieser ist langsam und fehleranfällig -> er sollte nur in Ausnahmefällen benutzt werden wo es keine andere Möglichkeiten gibt.

PHP gzip Library bedeutet dass PHP mit gzip-kompromierten Ein-/Ausgabeformaten arbeiten kann. Ob das nun Dateien oder eine PHP-interne GZIP-komprimierung ist, ist hierbei egal.
 
Es darf nur einmal komprimiert werden.
Wenn sowohl Apache als auch PHP als auch Wordpress in dieser Reihenfolge Inhalte komprimieren, geht das schief und erzeugt defekte Inhalte.
 
Wordpress "Geschwindigkeits-Optimierungs" Plugin am laufen? Am Besten gleich wieder löschen, habe noch kein Plugin dieser Art gesehen dass keine Probleme verursacht hat.

Dann dürften auch die Einträge in der .htaccess ihren Dienst verrichten (mit den von d4f angesprochenen Vorteilen).

Verweise, z.B. in der Theme header.php Datei, müssen evtl. händisch entfernt werden.
 
Last edited by a moderator:
Back
Top