Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to enable gzip?

I have found a couple of tutorials on how to enable gzip, but nothing seems to be working for me, so my question is how do i enable gzip. I am on a shared Dreamhost hosting server, It is running PHP version 5.2, and Apache, from the php info i have found this line, maybe this could help?

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 

I have also found this line

_SERVER["HTTP_ACCEPT_ENCODING"] gzip, deflate 

I don't know if that has anything to do with it. But that is my first question, secondly, i have dropbox, hosting a javscript file, and I am wondering is it possible to have that file gzipped, It is not being transfered compressed, so is ther any way to do so?

like image 491
mcbeav Avatar asked Jan 17 '11 00:01

mcbeav


People also ask

How do I know if gzip is enabled?

Double click on the file and select headers. Under 'Response headers' you are looking for the 'Connection-Encoding' field, it will say gzip if it is enabled.

Is gzip enabled by default?

Gzip Compression is Enabled by Default.


2 Answers

Have you tried with ob_gzhandler?

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

As an alternative, with the Apache web server, you can add a DEFLATE output filter to your top-level server configuration, or to a .htaccess file:

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

Tip: Sometimes it is pretty tricky to detect if the web server is sending compressed content or not. This online tool can help with that.

Using the developer tools in my web browser, I tested a PHP file with and without compression to compare the size. In my case, the difference was 1 MB (non-compressed) and 56 KB compressed.

like image 70
magallanes Avatar answered Sep 18 '22 16:09

magallanes


All I had to do to enable the encoding at the Apache level is

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

this will make the server do the necessary request header check, compress, send related headers

you can also do that in your PHP files before the ob_start()

ini_set("zlib.output_compression", 1); 

And to make Apache compress the static resources (e.g: .js files , .css files) do as Kamlesh did in his answer

like image 33
Accountant م Avatar answered Sep 18 '22 16:09

Accountant م