Linux 空间不支持mod_gzip、mod_deflate模块
Linux 空间不支持mod_gzip、mod_deflate模块,若想通过GZIP压缩网页内容,可以考虑两种方式,开启zlib.output_compression或者通过ob_gzhandler编码的方式。
zlib.output_compression是在对网页内容压缩的同时发送数据至客户端,ob_gzhandler是等待网页内容压缩完毕后才进行发送,相比之下前者效率更高,但需要注意的是,两者不能同时使用,只能选其一,否则将出现错误。
下文仅针对GoDaddy Deluxe Hosting – Linux 空间,对两者的实现方式做简单描述。
在默认情况下,zlib.output_compression是关闭的,如需开启需编辑php5.ini文件,加入以下内容:
以下为引用的内容: zlib.output_compression = On zlib.output_compression_level = 6 |
然后将php5.ini上传到FTP根目录下,剩下的事请就是等待它生效,这可能需要一段时间,可以通过phpinfo()函数检测结果:
以下为引用的内容: Directive Local Value Master Value zlib.output_compression On On zlib.output_compression_level 6 6 |
当zlib.output_compression的Local Value和MasterValue的值同为On时,表示已经生效,这时候访问的PHP页面(包括伪静态页面)已经GZIP压缩了,通过Firebug或者在线网页GZIP压缩检测工具可检测到压缩的效果。
如果需要使用ob_gzhandler,则需关闭zlib.output_compression,把php5.ini文件内容更改为:
以下为引用的内容: zlib.output_compression = Off zlib.output_compression_level = -1 |
ob_gzhandler是GoDaddy官网推荐的用法,通过在PHP文件中插入相关代码实现GZIP压缩,以下是GoDaddy帮助中心所提到的:
GZIP Compression
|
《Compressing Web Pages for Faster Load Times》文中提到,将以下PHP代码加入到PHP文件顶部,即可实现GZIP压缩。
以下为引用的内容: <?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); ?> |
不管是zlib.output_compression还是ob_gzhandler,都仅能对PHP文件进行GZIP压缩,对于HTML、CSS、JS等静态文件只能通过调用PHP的方式实现。
最后想说的是,现在主流的浏览器默认使用的是HTTP1.1协议,基本都支持GZIP压缩,对于IE而言,假如你没有选中其菜单栏工具-》Internet 选项-》高级-》HTTP 1.1 设置-》使用 HTTP 1.1,那么,你将感受不到网页压缩后的速度提升所带来的快感!
注明:文章mod_gzip 和mod_deflate压缩方法的内容来自风的翅膀;zlib.output_compression与ob_gzhandler压缩方法来自chibl.com