¿Cómo habilitar gzip?

He encontrado un par de tutoriales sobre cómo habilitar gzip, pero parece que nada funciona para mí, así que mi pregunta es cómo puedo activar gzip. Estoy en un servidor compartido de Dreamhost, está ejecutando la versión 5.2 de PHP, y Apache, de la información de php he encontrado esta línea, ¿quizás esto podría ayudar?

zlib ZLib Support enabled Stream Wrapper support compress.zlib:// Stream Filter support zlib.inflate, zlib.deflate Compiled Version 1.2.3.3 Linked Version 1.2.3.3 Directive Local Value Master Value zlib.output_compression Off Off zlib.output_compression_level -1 -1 zlib.output_handler no value no value 

También he encontrado esta línea

 _SERVER["HTTP_ACCEPT_ENCODING"] gzip, deflate 

No sé si eso tiene algo que ver con eso. Pero esa es mi primera pregunta, en segundo lugar, tengo Dropbox, tengo un archivo javscript, y me pregunto si es posible tener ese archivo comprimido, no está siendo transferido comprimido, ¿hay alguna forma de hacerlo?

¿Has probado con ob_gzhandler?

php manual

    

This should be a compressed page.

consejo: a veces es bastante complicado detectar si la web se envía comprimida o no, utilizo el plugin Firebug de Firefox, probé un archivo php sin compresión y con la compresión y comparé el tamaño, en mi caso, la diferencia fue de 1 MB (sin comprimir) y 56kb comprimidos.

O en su .htaccess

  AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript  

En la wiki oficial de Dreamhost, habilitan esto al modificar un htaccess :

  mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl|jpg|png|gif)$ 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.*  

Esto básicamente verifica si se encuentra mod_czip.c y si lo está, comprime los archivos por usted para que sean más rápidos de enviar al navegador. Supuestamente, esto acelera los tiempos de descarga del 35-40%, y luego el tamaño del archivo debería bajar al 55-65%.

Con una búsqueda rápida en Google puede encontrar otro hilo en Stackoverflow y en un sitio de terceros que resuelva este problema.

## En primer lugar, debe realizar cambios en la configuración de WHM (servidor) para habilitar Gzip. Después de eso hacer cambios en la configuración de cPanel ##

  1. Para WHM setting => Easy Apache => Exhaustive Options List deflate tab>

  2. Para la configuración de cPanel => Sofware / Servicios => Optimizar sitio web

En Apache, habilitar la compresión de salida es bastante sencillo. Agregue lo siguiente a su archivo .htaccess:

 # compress text, html, javascript, css, xml: 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 # Or, compress certain file types by extension:  SetOutputFilter DEFLATE  

Fuente: http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

La compresión se puede hacer de dos maneras.

Apache en realidad tiene dos opciones de compresión:

  • mod_deflate es más fácil de configurar y es estándar.
  • mod_gzip parece más poderoso: puedes precomprimir contenido.

Deflate es rápido y funciona, así que lo uso; usa mod_gzip si eso flota en tu bote. En cualquier caso, Apache verifica si el navegador envió el encabezado “Accept-encoding” y devuelve la versión comprimida o regular del archivo. Sin embargo, algunos navegadores antiguos pueden tener problemas (más abajo) y hay directivas especiales que puede agregar para corregir esto.

Si no puede cambiar su archivo .htaccess, puede usar PHP para devolver el contenido comprimido. Dele a su archivo HTML una extensión .php y agregue este código a la parte superior:

En PHP:

  

Comprobamos el encabezado “Accept-encoding” y devolvemos una versión comprimida del archivo (de lo contrario, la versión normal). Esto es casi como construir tu propio servidor web (¡qué divertido!). Pero realmente, intente usar Apache para comprimir su salida si puede ayudarlo. No quieres jugar con tus archivos.

Referencia: http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

Todo lo que tuve que hacer para habilitar la encoding en el nivel de Apache es

 zlib.output_compression = 1 // the PHP.ini file 

esto hará que el servidor haga la comprobación de encabezado de solicitud necesaria, comprima y envíe encabezados relacionados

también puedes hacer eso en tus archivos PHP antes de ob_start()

 ini_set("zlib.output_compression", 1); 

Y para hacer que Apache comprima los recursos estáticos (p. Ej .: archivos .js, archivos .css) haga lo que Kamlesh hizo en su respuesta