我的Wordpress的主机为LAMP架构,即Linux+ Apache+ MySQL + PHP ,突然想到有个gzip压缩可以提高网页访问的速度,所以就想做一下测试,同时了解一下如何开启gzip压缩。通过网上查询得知,在Apache中开启gzip压缩方法为:
1. 在httpd.conf 或者博客根目录的.htaccess文件中加入如下规则(Apache服务器需要支持 mod_deflate)
<ifmodule mod_deflate.c>
AddOutputFilter DEFLATE html xml php js css
</ifmodule>
或者添加
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/xml application/x-httpd-php application/x-javascript text/css
</ifmodule>
经过查看,主机的Apache支持mod_deflate(使用httpd -M查看是否有mod_deflate模块,或者查看你的httpd.conf文件中LoadModules有没有这个mod_deflate模块开启),直接复制粘贴以上的代码到httpd.conf文件的结尾,重新启动apache服务就可以实现gzip压缩了。
如果主机的apache不支持mod_deflate,主机的php却支持zlib,也就是说支持gzip压缩,具体方法见下面描述:
对于静态网页(html,js,css),先设置URL Rewrite:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog #更改为自己的博客的目录
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)(js|css|html|htm)$ /gzip.php?file=$1$2&type=$2 [L]
</IfModule>
可以通过URL Rewrite的方式请求这个gzip.php文件 (该文件需要放在”/”目录),这样静态文件的gzip压缩就OK了。
还有,对于由php动态输出的网页,常见的就是wp输出的页面,可以通过一个插件(gzippy)实现,直接到wp后台,在插件搜索里面输入“gzippy”然后安装即可。
gzippy只有一句话:
<?php
function gzippy() {
ob_start(‘ob_gzhandler’);
}
if(!stristr($_SERVER['REQUEST_URI'], ‘tinymce’) && !ini_get(‘zlib.output_compression’)) {
add_action(‘init’, ‘gzippy’);
}
?>
同时,对于主机的apache不支持mod_deflate,想让已经安装好的apache支持该模块,那也可以选择只编译 deflate 模块所需的文件 mod_deflate.c 和 mod_headers.c 。
这两个文件位于 {apache-src}/modules/filters/ 目录下(其中 {apache-src} 为 apache 源文件所在的目录)。
使用如下命令来单独编译这两个源文件。
[rootmin@localhost~]# {apache-bin}/apxs -i -a -c {apache-src}/modules/filters/mod_deflate.c
[rootmin@localhost~]# {apache-bin}/apxs –i –a –c {apache-src}/modules/filters/mod_headers.c
When install the header module the src directory is {apache-src}/modules/metadata/mod_headers.c
So we need change the command as follows:{apache-bin}/apxs -i -a -c {apache-src}/modules/metadata/mod_headers.c
其中 {apache-bin} 为 Apache 安装目录下的 bin 目录,接下来在 httpd.conf 直接配置该模块即可。
很多时候你在单独编译 deflate 模块的时候可能会碰到编译错误,提示是:
Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate
解决的方法是:编辑 /usr/local/apache2/bin/apr-config
文件修改其中的 LDFLAGS 值为 “-lz”,然后再重新编译 mod_deflate 模块,apxs -ica mod_deflate.c 即可。
为了省却不必要的麻烦,请尽量在编译安装apache时直接加上 –enable-deflate –enable-headers 参数。
我的网站是完成了,马上来看看效果:
分享到:
相关推荐
apache开启gzip压缩网络传输减少带宽
iis和apache开启gzip的方法 iis和apache开启gzip的方法
Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台,本文讲解了如何开启Apache平台上的Gzip压缩功能
这里给大家分享了一个linux下apache的开启gzip的方法。
Apache默认的http.conf配置文件中没有开启gzip压缩,apache1.3.x可以用mod_gzip进行优化网页浏览的...下面说一下怎样在Apache2下开启gzip压缩: 代码如下: # 加载deflate模块 LoadModule deflate_module modules/m
主要介绍了在Apache服务器上启用GZip压缩静态内容的方法,通过配置.htaccess文件即可轻松实现,同时附带了一些GZip的常用命令,需要的朋友可以参考下
对于部署在Linux服务器上的PHP程序,在服务器支持的情况下,我们建议你开启使用Gzip Web压缩,以前脚本之家介绍了iis中的开启方法,这篇文章主要介绍了linux中apache的开启方法
一般而言,页面文件开启gzip压缩以后,其体积可以减小60%~90%,对于文字类站点,可以节省下大量的带宽与用户等待时间。但是不论是iis还是apache默认都只压缩html类静态文件,对于php文件需要模块配置才可支持(iis...
利用apache mod_deflate module 开启gzip 开启方法: sudo a2enmod deflate sudo /etc/init.d/apache2 restart 关闭方法: sudo a2dismod deflate sudo /etc/init.d/apache2 restart 3.设置需要gzip压缩输出的...
因为在做一个项目,项目里面服务器主要提供数据,但是数据多了文件就大了,比较浪费流量和时间,我们便用Gzip来处理。我在本机上是apache,服务器上是IIS6.0,用的是php,那么我就在这里分享一下。
如果要开启gzip的话,一定要打开下面二个模块. 代码如下: LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so 设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,...
相信常来这的朋友能感觉到最近打开速度的提升,并不是因为我中了彩票换成百兆独享,而是我开启了Gzip压缩。
5、默认开启Gzip网页压缩传输,支持伪静态等设置; 6、支持虚拟主机可在任意磁盘建立网站目录,并且每个目录可单独绑定多级域名或泛域名 ; 主要组成: Apache ...
编译安装好apache httpd以后,可以继续添加扩展 mod_expires 用于发送header,设置静态文件的过期时间 代码如下: cd httpd-2.2.19/modules/...deflate 用于开启gzip压缩 代码如下: cd httpd-2.2.19/modules/filters sud
C语言实现的支持高并发、超高性能Web服务器源码,可以编译运行,使用高性能HTTP解析器fasterhttp作为其解析核心,在开启Keep-Alive和gzip压缩时(现代浏览器默认开启)性能比nginx约快3倍。 hetao功能: * 支持主流...
Apache2.2.4+PHP5.2.3+Zend Optimizer 3.3.0+SQLite 3.7.5 自带一个从fleaphp里面提取的服务管理器 注意:必须... 在第一版基础上,默认开启gzip,原生支持sqlite3,包含操作sqlite3例子和函数,并且进一步缩小体积。
Apache2.2.20+PHP5.3.8+eaccelerator0.9.6.1+SQLite 3.7.7.1 自带一个从fleaphp里面提取的服务管理器 注意:必须解压在英文路径,否则报错。...配置已经根据YSLOW优化,开启GZIP压缩传送,设置了Expires Header。
安装完之后,如果你不使用CDN加速功能的话,基本上不需要特殊的设置,我只是修改了下缓存时间和添加了个CSS文件位置以及开启GZIP压缩。 缓存时间设置: Maximum lifetime of cache objects(缓存过期时间):86400...
但是不论是iis 还是apache默认都只压缩html类静态文件,对于php文件需要模块配置才可支持(iis7.5中开启动态+静态压缩也可以),于是利用php自身功能到达gzip的效果也成为一项合理的诉求。 实现的方法很简单,打开...