apache - plugin - habilitar compresion gzip php
¿Cómo puedo hacer que la compresión Apache gzip funcione? (10)
Antes que nada vaya a apache / bin / conf / httpd.conf y asegúrese de que mod_deflate.so esté habilitado.
Luego vaya al archivo .htaccess y agregue esta línea:
SetOutputFilter DEFLATE
Esto debería dar como resultado todo el contenido servido como gzip, lo he probado y funciona.
No puedo hacer que mi sitio use compresión gzip.
Hace poco vi este video de Chris Coyier en css-tricks.com. En el video, habla sobre la habilitación de la compresión gzip para hacer que los sitios web se ejecuten más rápido.
Según su instrucción, me vinculé a github a través de html5boilerplate.com, copié el código de compresión gzip de su archivo .htaccess, lo pegué en mi propio archivo y lo cargué en mi sitio.
Lo probé a través de gzipwtf.com y parece que no funciona. Puede alguien ayudarme con esto?
Mi archivo .htaccess se ve así:
# ----------------------------------------------------------------------
# Trim www
# ----------------------------------------------------------------------
RewriteEngine On
RewriteCond %{HTTP_HOST} !^orbitprint.com$ [NC]
RewriteRule ^(.*)$ http://orbitprint.com/$1 [L,R=301]
# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------
<IfModule mod_deflate.c>
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)/s*,?/s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# Compress all output labeled with one of the following MIME-types
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml /
application/javascript /
application/json /
application/rss+xml /
application/vnd.ms-fontobject /
application/x-font-ttf /
application/xhtml+xml /
application/xml /
font/opentype /
image/svg+xml /
image/x-icon /
text/css /
text/html /
text/plain /
text/x-component /
text/xml
</IfModule>
</IfModule>
En mi caso anexar solo esta línea trabajada
SetOutputFilter DEFLATE
En mi caso, he usado el siguiente código para habilitar la compresión gzip en el servidor web apache.
# Compress HTML File, CSS File, JavaScript File, Text File, XML File and Fonts
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/x-httpd-php
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
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
Me he tomado como referencia de http://www.tutsway.com/enable-gzip-compression-using-htacess.php .
Lo intenté y creo que es mejor que otros ... Simplemente pegue su archivo .htaccess y compruebe el tiempo de carga en Google PageSpeed , Pingdom Tools y GTmetrics .
# Enable GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4/.0[678] no-gzip
BrowserMatch /bMSIE !no-gzip !gzip-only-text/html
</ifmodule>
# Expires Headers - 2678400s = 31 days
<ifmodule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 7200 seconds"
ExpiresByType image/gif "access plus 2678400 seconds"
ExpiresByType image/jpeg "access plus 2678400 seconds"
ExpiresByType image/png "access plus 2678400 seconds"
ExpiresByType text/css "access plus 518400 seconds"
ExpiresByType text/javascript "access plus 2678400 seconds"
ExpiresByType application/x-javascript "access plus 2678400 seconds"
</ifmodule>
# Cache Headers
<ifmodule mod_headers.c>
# Cache specified files for 31 days
<filesmatch "/.(ico|flv|jpg|jpeg|png|gif|css|swf)$">
Header set Cache-Control "max-age=2678400, public"
</filesmatch>
# Cache HTML files for a couple hours
<filesmatch "/.(html|htm)$">
Header set Cache-Control "max-age=7200, private, must-revalidate"
</filesmatch>
# Cache PDFs for a day
<filesmatch "/.(pdf)$">
Header set Cache-Control "max-age=86400, public"
</filesmatch>
# Cache Javascripts for 31 days
<filesmatch "/.(js)$">
Header set Cache-Control "max-age=2678400, private"
</filesmatch>
</ifmodule>
Prueba esto :
####################
# GZIP COMPRESSION #
####################
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4/.0[678] no-gzip
BrowserMatch /bMSIE !no-gzip !gzip-only-text/html
BrowserMatch /bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI /.(?:gif|jpe?g|png)$ no-gzip
Se encontró con este problema usando la misma configuración .htaccess. Me di cuenta de que mi servidor estaba sirviendo archivos javascript como text/javascript
lugar de application/javascript
. Una vez que agregué text/javascript
a la declaración AddOutputFilterByType
, gzip comenzó a funcionar.
En cuanto a por qué JavaScript se estaba sirviendo como text/javascript
: había una declaración AddType ''text/javascript'' js
en la parte superior de mi archivo raíz .htaccess. Después de eliminarlo (se había agregado por error), javascript comenzó a servir como application/javascript
.
Si su Web Host está en C Panel Habilite G ZIP Compression en Apache C Panel
Ve a CPanel y busca la pestaña de software.
Anteriormente, el sitio web de Optimize solía funcionar, pero ahora hay una nueva opción disponible, es decir, "Editor INI de MultiPHP".
Seleccione el nombre de dominio que desea comprimir.
Desplácese hacia abajo hasta que encuentre la compresión de salida zip y actívela.
Ahora vuelva a verificar la compresión G ZIP.
Puedes seguir el video tutorial también. https://www.youtube.com/watch?v=o0UDmcpGlZI
Su .htaccess debería funcionar bien; depende de cuatro módulos de Apache diferentes (uno por cada directiva <IfModule>
). Supongo que uno de los siguientes:
su servidor Apache no tiene mod_filter, mod_deflate, mod_headers y / o módulos mod_setenvif instalados y en ejecución. Si puede acceder a la configuración del servidor, compruebe
/etc/apache2/httpd.conf
(y los archivos de configuración de Apache relacionados); de lo contrario, puede ver qué módulos se cargan a través dephpinfo()
, debajo de la sección apache2handler (ver imagen adjunta); ( EDITAR ) O bien, puede abrir una ventana de terminal y emitir el comandosudo apachectl -M
quesudo apachectl -M
los módulos cargados;si recibe un error del servidor interno http 500, su servidor no podrá usar archivos .htaccess;
Está intentando cargar un archivo PHP que envía sus propios encabezados (sobrescribiendo los encabezados de Apache), lo que "confunde" el navegador.
En cualquier caso, debe verificar dos veces la configuración del servidor y los registros de errores para ver qué está sucediendo. Solo para estar seguro, trate de usar la forma más rápida sugerida here en los documentos de Apache:
AddOutputFilterByType DEFLATE text/html text/plain text/xml
y luego intente cargar un archivo de texto grande (preferiblemente, limpie primero su caché).
( EDITAR ) Si los módulos necesarios están allí (en el directorio de módulos de Apache) pero no están cargados, simplemente edite /etc/apache2/httpd.conf y agregue una directiva LoadModule para cada uno de ellos.
Si los módulos necesarios no están allí (ni cargados, ni en el directorio de los módulos de Apache), me temo que la única opción es reinstalar Apache (una versión completa).
Habilitar la compresión a través de .htaccess
Para la mayoría de las personas que leen esto, la compresión se habilita agregando algún código a un archivo llamado .htaccess en su servidor / host web. Esto significa ir al administrador de archivos (o donde quiera que vaya para agregar o cargar archivos) en su servidor de Internet.
El archivo .htaccess controla muchas cosas importantes para su sitio.
El código a continuación se debe agregar a su archivo .htaccess ...
<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>
Guarde el archivo .htaccess y luego actualice su página web.
Verifique si su compresión funciona con la herramienta de compresión Gzip .
<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>
# Insert filters
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
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4/.0[678] no-gzip
BrowserMatch /bMSI[E] !no-gzip !gzip-only-text/html
# Make sure proxies don''t deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>