Cómo comprimir con GZIP páginas PHP

  • Por
Optimizar la descarga de una página PHP por medio de la compresión GZIP. Enviar el código de la página comprimido al cliente.
La compresión por GZIP o Deflate es una buena técnica para liberar de peso, en KB, a las páginas web. No resulta nada complicada si sabemos cómo configurarla y las ventajas son muy representativas. En los anteriores artículos del Manual de Optimización con GZIP ya hemos explicado bien en qué consiste y cuáles son las ventajas de utilizar estos métodos de compresión.

Depende de nosotros, o de la configuración de nuestro servidor web, que se envíen o no los archivos comprimidos a los clientes que lo solicitan, así que un primer paso para cualquier persona interesada en optimizar su web sería comprobar si las páginas de su sitio web se están enviando comprimidas .

En este artículo veremos una de las primeras configuraciones que podemos hacer con suma facilidad y en minutos sobre nuestro sitio web, para que las páginas PHP de nuestro sitio se envíen comprimidas. Se trata de la edición del archivo .htaccess para configurar Apache y hacer que los archivos PHP se compriman con GZIP antes de enviarse al cliente.

Nota: Claro que estas notas serán sólo útiles para sitios con programación PHP que corran sobre el servidor web Apache, pues los archivos htaccess son ficheros de texto que sirven para configurar Apache. Puedes ver la FAQ Qué es HTACCESS, donde encontrarás algunas explicaciones básicas sobre ese archivo y referencias para su configuración.

Código htaccess para comprimir las páginas PHP

Ahora veamos un sencillo código fuente que podemos utilizar para configurar Apache, de modo que los archivos PHP se envíen comprimidos. Es decir, que el código HTML de la página, generado después del procesamiento de los scripts PHP, se comprima en línea antes de enviarse al cliente que lo solicitó.

Esto se coloca en un archivo htaccess en nuestro servidor, osea, un fichero de texto llamado ".htaccess", donde colocamos el código necesario para configurar Apache.

Nota: Por si no se sabe, los archivos htaccess tienen siempre el mombre ".htaccess". En Linux los archivos cuyo nombre comienza con punto "." quiere decir que son ocultos. Así pues el htaccess es un archivo que resulta oculto dentro de Linux, pero no en Windows. En los .htaccess colocamos cualquier configuración para el servidor Apache, no sólo las configuraciones para comprimir los archivos, también para hacer redirecciones, bloquear acceso a ficheros, etc etc.

Como los .htaccess sirven para configurar un directorio y todos los subdirectorios de aquel donde hemos colocado el archivo, el código siguiente lo pondremos en un archivo .htaccess que tendremos en la home del dominio (directorio raíz de publicación de nuestro sitio web), de modo que afecte al directorio principal del dominio y todos los subdirectorios que cuelguen de él.

php_flag zlib.output_compression On
php_value zlib.output_compression_level 2

La primera línea le indica que se tiene que activar la compresión GZIP para los archivos PHP. La segunda línea indica el nivel de compresión del archivo (cuanto mayor sea el nivel, de 1 al 10) mayor será la compresión, pero también requerirá más tiempo de procesamiento el comprimir los archivos antes de enviarlos. Con una compresión a nivel 2 ya se comprime bastante y requiere menos tiempo de proceso que una compresión a nivel superior.

En siguientes artículos aprenderemos a comprimir no sólo las Páginas PHP enviadas por Apache, sino también otros tipos de archivo susceptibles de ser comprimidos. Puedes continuar la lectura a partir del artículo donde explicamos cómo comprimir archivos JS, CSS y demás.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Sergio

24/9/2012
Error Interno 500
Excelente página ha sido de gran ayuda. De momento al agregar las lineas php_flag zlib.output_compression On
php_value zlib.output_compression_level 2
Me sale error interno 500. Alguna sugerencia? Gracias.

Sergio

24/9/2012
Respuesta Hosting
Me comuniqué con los del hosting y me respondieron lo siguiente:
Buenas Tardes;

La librería ZIP se encuentra configurada en els ervidor que aloja su dominio


root@sco4.hostdime.com.co(~)$ php -m|grep zip
zip

Ahora quedé despistado. No sé como ponerlo en el htaccess.

Jano

07/11/2013
falta el como...
no se si me salte una parte del articulo, pero en que parte sale el como comprimir el php con gzip?
hablas sobre las configuraciones, lo cual lo encuentro buenísimo, pero también necesito saber que usar para realizar la compresión...

mercacoches

13/11/2015
excelente artículo
Gracuas por esta información. Lo utilizaré para nuestro proyecto www.mercacoches.net

Gracias

juanca

15/9/2016
Incompleto
El codigo no funciona.

Viviana

15/3/2017
El código para compresión da error 500
He escrito en el htaccess las líneas php_flag zlib.output_compression On
php_value zlib.output_compression_level 2 y me da error 500