웹 서버의 페이지 크기가 크면 로딩 속도가 느리게 되는데 이때 PHP의 경우 압축전송 기술인 gzip 을 사용하게 됩니다.
PHP로 gzip을 사용하여 문서를 압축 하면 대략 70 ~ 80% 까지 압축률을 보여 주며 보통 PHP 상단에 아래와 같이 적어 사용합니다.
<?php ob_start("ob_gzhandler"); ?>

하지만 자바스크립트와 CSS 파일은 PHP 파일이 아니라서 ob_start 를 사용할 수가 없습니다.
자바스크립트나 CSS 같은 파일을 압축 전송하도록 해주는 Minify 를 소개 합니다.

Minify 는 PHP 5.2.1 이상 버전과 zlib 압축 라이브러리가 설치된 환경이어야 합니다.
http://code.google.com/p/minify/

Minify 를 압축 풀어 나오는 min 폴더만 웹 문서가 있는 기본 디렉토리로 가져 갑니다.
( min_test_units 디렉토리는 삭제 하셔도 됩니다. ~ㅅ~ )
[root@yongbok ~]# cd /usr/local/src
[root@yongbok ~]# wget http://minify.googlecode.com/files/minify_2.1.3.zip
[root@yongbok ~]# unzip minify_2.1.3.zip
[root@yongbok ~]# mv min /home/www/ && rm -rf min_test_units

캐시 디렉토리를 생성하고 권한을 707 로 줍니다.
[root@yongbok ~]# cd /home/www/min/cache
[root@yongbok ~]# chmod 707 /home/www/min/cache

min 디렉토리의 config.php 파일을 열어 $min_cachepath 변수에 캐시 디렉토리를 지정 해줍니다.
[root@yongbok ~]# vi /home/www/min/config.php
/**
* For best performance, specify your temp directory here. Otherwise Minify
* will have to load extra code to guess. Some examples below:
*/
//$min_cachePath = 'c:\\WINDOWS\\Temp';
//$min_cachePath = '/tmp';
//$min_cachePath = preg_replace('/^\\d+;/', '', session_save_path());
$min_cachePath = './cache';

기본 문서 디렉토리에서 (/home/www) .htaccess 를 이용하여 js, css 파일을 자동 압축 해주도록 합니다.
[root@yongbok ~]# vi /home/www/.htaccess
RewriteEngine On
RewriteRule ^(.*\.(css|js))$ ./min/index.php?f=$1 [L]

압축을 지원하는지 370.87 KB 용량의 css 파일을 생성하고 아래 주소에서 확인 해보았습니다.
http://www.whatsmyip.org/http_compression/
- Minify 사용 전

- Minify 사용 후

약 200 KB 정도 압축이 된것을 확인 할수 있습니다. :ㅇ

참고
http://code.google.com/p/minify/wiki/UserGuide


출처: Create The Flow! http://www.cyworld.com/ruo91



XE Login