PHP, Gzip, .htaccess | WP-Cache + Gzip

06122007 / No Comment / 建站笔记

PHP, Gzip, .htaccess

很多网站没有把网页压缩处理就直接给用户看, 如果你也是这么做的话, 那这篇文章正好适合你! 一些浏览器(一些, 并非所有)支持”gz编码”数据, 也就是说, 我们可以把数据压缩一下! 想象一下这是多么的爽的一件事? 流量小了, 速度快了, 唯一不足就是服务器的负担增大了! 如果你的访问量很大的话你就要小心一点了!
PHP本身就有Gzip的函数, 但是如果说要我们一页一页地去加代码的话我们应该会忙到不可开交的. 这里提供给你一个方法来提高你的工作效率.
为了达到目的, 我们就用超级强大的 .htaccess 来实现. 我们可以在 .htaccess 文件中添加下面的代码:

php_value auto_prepend_file /full/path/to/begin_gzip.php
php_value auto_append_file /full/path/to/end_gzip.php

auto_prepend_file 跟 auto_append_file 用得恰到好处. 他的作用相当于 include() 又或者说 require(), 帮你自动引种这段代码到当前的文件中. 这样子的一来可以很方便地控制我们想要引用的代码, 二来方便我们添加其他的代码, 再者我们根本就不用碰任何的一个文件就可以时间插入代码了, cool吧?! ^_^
在这个例子中, 我们用了两个文件. 第一行代码相当于在每个 PHP 文件的开头都添加了 include(“begin_gzip.php”) 之中的代码; 而第二行代码相当于在每个 PHP 文件的结尾都添加了 include(“end_gzip.php”) 之中的代码.
如果要让用户可以正常接收到数据, 我们要写一些函数来控制输出缓存, 高速 PHP “你要压缩这个数据”. 用户端(例如浏览器)高速服务器说它可不可以接受”gz编码”的数据. 如果它说不行的话, 那么服务器就不会给它”gz编码”过的代码 – 那么也就是说你根本就没有必要担心说访客没有办法看到你的网站, 而绝大部分的访客都可以更快的看到你的网站, 当然, 服务器的流量也会相应的大大下降了!
注意: 如果你的网站已经设置了输出缓存, 那么下面的代码可能不会起到最理想的作用. 再有就是 PHP 4.0.5 以前的版本是不支持同时使用输出缓存以及 gz 编码的.
第一个文件, begin_gzip.php, 必须包括下列的代码, 高速 PHP 要开始输出缓冲了, 而输出的数据会经过 gz 压缩处理.

第二个文件, end_gzip.php,必须包括下列代码, 这段代码会跟 PHP 说”赶快吧这个输出缓存给浏览器吧”!

最后, 你要记住把这个教程最前面的梁行代码添加到你的 .htaccess 文件之中, 而且还要修改一下两个文件的绝对路径. 如果你没有 .htaccess 文件的话, 新建一个空文档(用文本编辑器或者EditPlus等软件)然后再把代码粘贴进去并且保存. 最后当然就是要把它上传到你的服务器, 然后把它名名成 “.htaccess” (htaccess 是扩展名, 没有任何文件名!)
好了, 就这样子就完成了! 你的 PHP 文件现在应该都是全部被压缩过的了, 而且在这个过程中, 你根本就一个文件都没有编辑过. 天呐, PHP 就是好! ^_^
翻译至: PHP, Gzip and htaccess

WP-Cache + Gzip

一用上 WP-Cache 就不能用 Gzip 了, 这应该也是出于对服务器的考虑. 但是如果我就是想要开 Gzip 来省流量的话, 怎么办呢? 现在有办法了.
1. 下载最新版的 WP-Cache
2. 关掉 gzip 的选项
3. 编辑 wp-cache-phase1.php 文件:

foreach ($meta->headers as $header) {
header($header);

前面添加
if ( extension_loaded(’zlib’) ) ob_start(’ob_gzhandler’);
4. 编辑 /wp-content/advanced-cache.php 文件:

foreach ($meta->headers as $header) {
前面添加
if ( extension_loaded(’zlib’) ) ob_start(’ob_gzhandler’);
大功告成!
P.S.: 我以前的 blog 一页有300多k, 加了之后也就几十k… Gooooooooooooooood.! ^_^
翻译自: WordPress WP-Cache with GZip Compression enable

为什么要转这两个?

我本来在 v2ex 上问怎么帮我的 Babel 添加Gzip, 但是没有人理我, 我就自己努力了一番找到了第一篇文章. 而我记得我当年也有添加 WP-Cache 的 Gzip 代码, 于是乎就顺便翻译一下了. ^_^ 但愿对大家都有用吧~~~

Comment RSS / Trackback URI

给我留个言吧... *^_^*

可使用下列xHTML标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
名字跟邮箱为一定要写...