教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP开启Gzip页面没有输出的解决方法

PHP开启Gzip页面没有输出的解决方法

发布时间:2016-04-22   编辑:jiaochengji.com
本文介绍下,在开启php的gzip压缩,页面没有输出问题的解决方法,供大家参考。

在php中启用gzip压缩,可以将文件压缩到原来的约1/4,使用流量将减少到原来的1/4。

对一个纯文本的html测试,原文件1.6M,竟然压缩掉99%!可见gzip的优势。

开启php中gzip压缩的方法。
打开php.ini,添加:
 

复制代码 代码示例:
output_buffering = Off
output_handler =
zlib.output_compression = On
 

即可实现为全站的php文件启用gzip加速。

对于html文件,可以通过配置.htaccess文件,由php来处理html请求(会加重服务器负担,建议在nginx或apache上做gzip处理):
 

复制代码 代码示例:
AddHandler x-httpd-php .html .htm

问题:
默认安装的PHP5.3,一旦开启了Gzip压缩输出功能,打开网站首页会无法显示。
这是由于PHP配置有问题造成的,5.3默认配置如下:
output_buffering=4096;
 
将其设置为off或者0即可解决。

经过验证,这个问题在PHP 5.1 - PHP5.2中都存在。

不用担心是否影响压缩,或根本就不压缩,可以用如下的方法判断:
 

复制代码 代码示例:
curl -I --compressed http://www.jbxue.com
 

 

HTTP/1.1 200 OK
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压缩有效。

您可能感兴趣的文章:
PHP开启Gzip页面没有输出的解决方法
PHP开启gzip压缩的二种方法
IIS开启Gzip压缩失败的原因与解决办法
生产环境中遇到的IIS启用GZip的问题
php中url伪静态和Gzip同时开启引发冲突的原因与解决方法
php环境中url伪静态和Gzip同时开启相关问题与解决办法
php判断网页是否启用gzip压缩的方法
测试在apache上开启gzip
教你修改Apache配置文件开启gzip压缩传输
整站开启php zlib(gzip)压缩输出功能的方法

[关闭]
~ ~