课程咨询 :17156168575 QQ:2720475033

  • Apache 和 PHP 如何开启 gzip 压缩

    发布:济南php培训      来源:济南php培训      时间:2016-08-30

  • 网页开启 gzip 压缩以后,其体积可以减小 60%~90%,可以节省下大量的带宽与用户等待时间,下图就是杨雨个人博客首页经过 gzip 压缩之后的比例。由于网站的 CSS/JS/图片 等静态资源我们已经使用七牛进行 CDN 加速,而七牛已经实现了 gzip 压缩,所以如果网站的 PHP 生成的内容也可以实现 gzip 压缩,则整站即可实现 gzip 压缩。

    下面我就从 Apache 服务器,PHP 等方面去讲解下如何开启 gzip 压缩:

    Apache 开启 gzip 压缩

    首先确保你的 Apache 已经加载了 mod_deflate 模块,然后在 httpd.conf 代码中加载以下代码:

    AddOutputFilterByType DEFLATE text/Html text/css text/plain text/xml application/json application/x-httpd-php application/x-javascript

    如果你没有权限修改你的主机,你也可以将以上代码复制到网站根目录的 .htaccess 文件。

    PHP 开启 gzip 压缩

    如果修改 Apache httpd.conf 文件无效,则可以通过修改 PHP 的 php.ini 方法:

    打开 PHP 目录下的 php.ini 文件,找到 zlib.output_compression = Off,改成zlib.output_compression = On,再把 ;zlib.output_compression_level 前面的;去掉,后面的-1改成1~5的数值,这样便可以实现所有 PHP 页面的 gzip 效果。

    如果无法修改 php.ini 文件,则可以在需要 gzip 压缩的 PHP 文件头部加入:

    if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) {

    ob_start('ob_gzhandler');

    }else{

    ob_start();

    }

    既可以实现该 php 页面 gzip 压缩。

    WordPress 开启 gzip 压缩

    如果修改 Apache httpd.conf 文件和 PHP 的 php.ini 文件的方法都无效,则将下面的代码复制到当前主题的 functions.php 文件中也可以实现 WordPress 整站 gzip 压缩:

    add_action('init', 'wpjam_gzip_compression');

    function wpjam_gzip_compression(){

    if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) {

    ob_start('ob_gzhandler');

    }else{

    ob_start();

    }

    }

    总结

    经过测试,采用服务器压缩要比使用 PHP 压缩要更快,而且压缩之后更小。所以最好的方法还是直接让 Apache 直接进行 gzip 压缩。如果无法修改 Apache 的 httpd.conf 文件,再尝试去修改 php.ini 文件,最终才是使用修改 php 文件以及 WordPress hook 的方法。

上一篇:关联数组的十大使用技巧

下一篇:php开发中JSON的应用

最新开班日期  |  更多

PHP高级开发工程师就业班

PHP高级开发工程师就业班

开班日期:9月28日

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:9月28日

济南PHP培训班就业班

济南PHP培训班就业班

开班日期:9月28日

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:9月28日

 扫一扫,关注一下! 济南:历下区山大路47号数码港大厦 济南:历下区趵突泉北路三联商社
青岛:市南区金坛路17号 潍坊:奎文区东风东街299号建行大厦
烟台:海港路25号阳光100城市广场 临沂:兰山区红旗路1号苏宁易购
淄博:张店区金晶大道68号华润大厦 济宁:市中区太白路10号苏宁生活广场
课程培训电话:17156168575 QQ:2720475033 全国服务监督电话:400-111-8989    服务邮箱 tousu@tedu.cn

2001-2017 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56