有关在php中配置gzip压缩的要点:
1、默认php是不开启zlib整站压缩输出的,而是通过对需要压缩输出的页面使用ob_gzhandler函数实现,两者只能二选一,否则会报错。
2、zlib.output_compression默认值为Off,你可以将其设置为On,或者output buffer size(默认为4k)
3、zlib.output_compression_level代表压缩比,默认推荐设置压缩比值为6,可选范围为1-9,-1代表关闭php zlib(gzip)压缩
二、保存php.ini配置文件,并重启apache服务器
zlib.output_compression_level = -1
修改为:
zlib.output_compression_level = 6
三、打开apache 配置文件httpd.conf,配置装载deflate_module
(/opt/httpd-2.0.59 为安装源码)
如果没有modules/mod_deflate.so,则:
打开httpd.conf,将
去除开头的#号,并重启apache即可。
这样php gzip压缩就开启了,可以用站长工具等测试下,看看是否已启用网站内容压缩。
在php中开启zlib或gzip压缩,一般有两种方法:
一是使用ob_start("ob_gzhandler") ,二是开启php自带的zlib配置。
本文介绍下开启zlib的方法,记得在实际使用中二种压缩方法只能选择一个哦。
一、打开php.ini配置文件,找到zlib.output_compression = Off,将
;zlib.output_compression_level = -1
修改为:
zlib.output_compression_level = 6
其中,zlib.output_compression_level = 6 的数字6是压缩比例
二、打开apache 配置文件httpd.conf,配置装载deflate_module,找到
#LoadModule deflate_module modules/mod_deflate.so
把前面的注释“#”号去掉
三、重启apache,测试下网站是否开启压缩。
在php中启用gzip压缩,可以将文件压缩到原来的约1/4,使用流量将减少到原来的1/4。
对一个纯文本的html测试,原文件1.6M,竟然压缩掉99%!可见gzip的优势。
开启php中gzip压缩的方法。
打开php.ini,添加:
output_handler =
zlib.output_compression = On
即可实现为全站的php文件启用gzip加速。
对于html文件,可以通过配置.htaccess文件,由php来处理html请求(会加重服务器负担,建议在nginx或apache上做gzip处理):
问题:
默认安装的PHP5.3,一旦开启了Gzip压缩输出功能,打开网站首页会无法显示。
这是由于PHP配置有问题造成的,5.3默认配置如下:
output_buffering=4096;
将其设置为off或者0即可解决。
经过验证,这个问题在PHP 5.1 - PHP5.2中都存在。
不用担心是否影响压缩,或根本就不压缩,可以用如下的方法判断:
Server: nginx/0.8.13
Date: Tue, 01 Sep 2009 16:38:53 GMT
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.2.10
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Tue, 01 Sep 2009 16:38:53 GMT
Cache-Control: no-store, no-cache, must-ridate
Pragma: no-cache
Content-Encoding: gzip
如果结果中有:Content-Encoding: gzip 这句,则说明该网页是经gzip压缩过的,即php gzip压缩有效。