2011-01-17 11 views
22

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 habilito 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?¿Cómo habilitar gzip?

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 ello. 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?

+0

¿Qué desea para gzip? ¿Cómo usar las funciones PHP gzip? Comprimir la salida de su servidor web? Si es el último, instale 'mod_deflate', y pruebe [serverfault.com] (http://serverfault.com) si tiene algún problema o pregunta al respecto. – netcoder

Respuesta

43

¿Has probado con ob_gzhandler?

php manual

<?php 
ob_start("ob_gzhandler"); 
?> 
<html> 
<body> 
<p>This should be a compressed page.</p> 
</html> 
<body> 

consejo: a veces es muy difícil de detectar si la web es enviar comprimido o no, yo uso el plugin Firebug de Firefox, he probado un archivo PHP sin compresión y con la compresión y comparar el tamaño, en mi caso, la diferencia fue de 1 mb (sin comprimir) y de 56 kb comprimidos.

o en su .htaccess

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

¿Qué tal la hoja de estilo y los javascripts? Estaba pensando que sería más una cosa de .htaccess. intentaré esto sin embargo. – mcbeav

+0

Por lo que puedo ver, eso no me está dando ningún resultado. – mcbeav

+0

.... – magallanes

5

En la wiki oficial de Dreamhost que permiten esto modifying an htaccess:

<IfModule mod_gzip.c> 
    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.* 
</IfModule> 

Esto básicamente comprueba si se encuentra y si mod_czip.c es que comprimirá 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 se puede pensar en otra thread on Stackoverflow una en un sitio third party abordar esta cuestión.

+0

Esto es muy viejo. Con Apache 2 es mejor usar 'mod_deflate.c' en su lugar. – VSG24

+0

Incluye archivos como 'jpg/png/gif' y luego los prohíbe a través de la imagen' mime '/.*'. Realmente no tiene sentido para mí. – mgutt

2

## Antes que nada, debe realizar cambios en la configuración de WHM (servidor) para habilitar Gzip. Después de que realizar cambios en la configuración de cPanel ##

  1. Para el ajuste WHM => Fácil Apache => exhaustiva lista de opciones < aquí enable - desinflar pestaña>

  2. Para cPanel ajuste => Programas opción/Servicios => Optimizar Sitio Web < aquí elegir lo que quiere>

3

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: 
<files *.html> 
SetOutputFilter DEFLATE 
</files> 

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

+0

http://www.giftofspeed.com/enable-gzip-compression/ – Kamlesh

1

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 potente: puede 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 contenido comprimido. Dar su archivo HTML extensión .php y añadir este código a la parte superior:

En PHP:

<?php if (substr_count($_SERVER[‘HTTP_ACCEPT_ENCODING’], ‘gzip’)) 
ob_start(“ob_gzhandler”); else ob_start(); ?> 

verificamos los “Accept-Encoding” de cabecera y devolver una versión del archivo comprimido con gzip (de lo contrario el versión regular). 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/

0

Todo lo que tenía que hacer para habilitar la codificación a nivel de Apache es

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

esto hará que el servidor de hacer el check encabezado de la solicitud es necesario, comprimir, enviar Otras Encabezados

También puede hacer eso en sus archivos PHP antes del ob_start()

ini_set("zlib.output_compression", 1); 

Y para hacer Apache comprimir los recursos estáticos (por ejemplo: .js, .css) hacen como Kamlesh hizo en su respuesta

Cuestiones relacionadas