操作系统centos5.4 X86_64
在Google Code上有一个PHP的开源项目叫Minify,它可以合并、精简、Gzip压缩和缓存JavaScript和CSS文件。其文件合并功能就非常类似Combo Handler,只不过URL的语法稍微有点不同。
1.安装apache
yum -y install apache
2.安装php
yum -y install php
3.现在minify源码
下载地址http://code.google.com/p/minify/downloads/list
在windows下将下载后的源码包解压,并将min目录传到服务器http.conf配置文件指定的DocumentRoot目录下。
然后在min文件夹下新建.htaccess文件,并添加如下Rewrite规则:
<IfModule mod_rewrite.c>
RewriteEngine on
# You may need RewriteBase on some servers
# 如果做了所有的开启Mod Rewrite的设置依旧无效,请城市尝试启用下面这句
#RewriteBase /min
# rewrite URLs like "/min/f=..." to "/min/?f=..." RewriteRule ^([bfg]=.*) index.php?$1 [L,NE]
</IfModule>
min/config.php配置参数说明如下:
$min_enableBuilder = true;
//本地使用时可以通过http://dwn/min/builder/来进行配置,外部使用时请设置为false
//$min_cachePath = 'c:WINDOWSTemp';
//$min_cachePath = '/tmp';
//$min_cachePath = preg_replace('/^d+;/', '', session_save_path());
//选择其一,去掉注释设置临时缓存目录,这样可以减少程序运算提高性能
$min_serveOptions['maxAge'] = 1800;
//设置浏览器缓存的时间,为了提升性能建议这个时间设置尽可能的长,比如315360000
//如果需要在不改变URL的情况下更新静态文件,可以采用类似时间戳的方式,
//如http://localhost/min/f=example/example.css&20100601.css
//建议静态文件采用版本号管理,每次修改都需要升级版本号,这样就无需时间戳了,
//如http://localhost/min/f=example/example_1_0_1.css
$min_serveOptions['minApp']['maxFiles'] = 10;
//参数f获取参数的个数,即合并的文件个数,这个数量完全可以增大,比如50,
//当然可能会遇到URL最大值问题,后会有解释
$min_documentRoot = '';
//$min_documentRoot = substr(__FILE__, 0, strlen(__FILE__) - 15);
//$min_documentRoot = $_SERVER['SUBDOMAIN_DOCUMENT_ROOT'];
//当$min_documentRoot为空时,其值就是$_SERVER['DOCUMENT_ROOT'],
//但合并的文件不在$_SERVER['DOCUMENT_ROOT']下,会导致400错误,
//这个时候可以启用第2行或第3行
4.apache开启mod_rewrite功能
修改apache http.conf文件添加如下
LoadModule rewrite_module modules/mod_rewrite.so
将AllowOverride项设置为all,如下
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
allow from all
</Directory>
5.设置min禁止用户访问
在httpd.conf中添加如下内容
<Directory /var/www/html/min>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Deny from all
</Directory>
6.启动apache
service httpd start
参考http://dancewithnet.com/2010/06/08/minify-js-and-css-files-in-server/