`
paulfzm
  • 浏览: 874172 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

apache 开启 gzip

 
阅读更多
我的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 参数。

我的网站是完成了,马上来看看效果:





分享到:
评论
1 楼 丶Sk.Mabon 2012-07-14  
请教gzip.php 的写法。万分感谢!

相关推荐

    apache开启gzip压缩网络传输减少带宽

    apache开启gzip压缩网络传输减少带宽

    iis和apache开启gzip的方法

    iis和apache开启gzip的方法 iis和apache开启gzip的方法

    Apache开启GZIP压缩功能方法

    Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台,本文讲解了如何开启Apache平台上的Gzip压缩功能

    linux下apache的开启gzip的方法

    这里给大家分享了一个linux下apache的开启gzip的方法。

    使Apache实现gzip压缩配置

    Apache默认的http.conf配置文件中没有开启gzip压缩,apache1.3.x可以用mod_gzip进行优化网页浏览的...下面说一下怎样在Apache2下开启gzip压缩: 代码如下: # 加载deflate模块 LoadModule deflate_module modules/m

    在Apache服务器上启用GZip压缩静态内容的方法

    主要介绍了在Apache服务器上启用GZip压缩静态内容的方法,通过配置.htaccess文件即可轻松实现,同时附带了一些GZip的常用命令,需要的朋友可以参考下

    apache启用gzip压缩的实现方法

    对于部署在Linux服务器上的PHP程序,在服务器支持的情况下,我们建议你开启使用Gzip Web压缩,以前脚本之家介绍了iis中的开启方法,这篇文章主要介绍了linux中apache的开启方法

    php简单开启gzip压缩方法(zlib.output_compression)

    一般而言,页面文件开启gzip压缩以后,其体积可以减小60%~90%,对于文字类站点,可以节省下大量的带宽与用户等待时间。但是不论是iis还是apache默认都只压缩html类静态文件,对于php文件需要模块配置才可支持(iis...

    将PHP程序中返回的JSON格式数据用gzip压缩输出的方法

    利用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压缩输出的...

    IIS6.0 开启Gzip方法及PHP Gzip函数分享

    因为在做一个项目,项目里面服务器主要提供数据,但是数据多了文件就大了,比较浪费流量和时间,我们便用Gzip来处理。我在本机上是apache,服务器上是IIS6.0,用的是php,那么我就在这里分享一下。

    Gzip在apache2中的设置和squid对它的处理

    如果要开启gzip的话,一定要打开下面二个模块. 代码如下: LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so 设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,...

    Gzip压缩启用图文方法详细说明【IIS6.0、Apache】

    相信常来这的朋友能感觉到最近打开速度的提升,并不是因为我中了彩票换成百兆独享,而是我开启了Gzip压缩。

    UPUPW PHP v5.2.17 经典怀旧版套装 c1.zip

    5、默认开启Gzip网页压缩传输,支持伪静态等设置; 6、支持虚拟主机可在任意磁盘建立网站目录,并且每个目录可单独绑定多级域名或泛域名 ;   主要组成: Apache ...

    Apache httpd 安装module mod_expires、mod_deflate的方法

    编译安装好apache httpd以后,可以继续添加扩展 mod_expires 用于发送header,设置静态文件的过期时间 代码如下: cd httpd-2.2.19/modules/...deflate 用于开启gzip压缩 代码如下: cd httpd-2.2.19/modules/filters sud

    C语言实现的支持高并发、超高性能Web服务器源码.rar

    C语言实现的支持高并发、超高性能Web服务器源码,可以编译运行,使用高性能HTTP解析器fasterhttp作为其解析核心,在开启Keep-Alive和gzip压缩时(现代浏览器默认开启)性能比nginx约快3倍。 hetao功能: * 支持主流...

    PHP+SQLite绿色迷你第二版

    Apache2.2.4+PHP5.2.3+Zend Optimizer 3.3.0+SQLite 3.7.5 自带一个从fleaphp里面提取的服务管理器 注意:必须... 在第一版基础上,默认开启gzip,原生支持sqlite3,包含操作sqlite3例子和函数,并且进一步缩小体积。

    PHP+SQLite绿色迷你第三版

    Apache2.2.20+PHP5.3.8+eaccelerator0.9.6.1+SQLite 3.7.7.1 自带一个从fleaphp里面提取的服务管理器 注意:必须解压在英文路径,否则报错。...配置已经根据YSLOW优化,开启GZIP压缩传送,设置了Expires Header。

    WordPress缓存插件(WP Super Cache和W3 Total Cache).rar

    安装完之后,如果你不使用CDN加速功能的话,基本上不需要特殊的设置,我只是修改了下缓存时间和添加了个CSS文件位置以及开启GZIP压缩。 缓存时间设置: Maximum lifetime of cache objects(缓存过期时间):86400...

    php启用zlib压缩文件的配置方法

    但是不论是iis 还是apache默认都只压缩html类静态文件,对于php文件需要模块配置才可支持(iis7.5中开启动态+静态压缩也可以),于是利用php自身功能到达gzip的效果也成为一项合理的诉求。 实现的方法很简单,打开...

Global site tag (gtag.js) - Google Analytics