안녕하세요? 맨날 눈팅만 하다가 XE 속도 개선팁을 정리해서 모아봤습니다.
모두 제가 쓴 글이 아니고 여기 저기 글을 참조하여 모은 내용이니 혹시 저작권에 문제가 생기면 알려주세요. 자삭하겠습니다.
대부분 1.4.10 기준이나 1.5 버전에서도 자세히 찾아보시면 수정하실 수 있을 거라 생각됩니다.
하시기 전에 반드시 백업하시고 작업하시는 것 잊지 마시고요!!!!
1. Cache 잡기
검색을 해보니 페이지의 Cache를 단 1분 이라도 잡는게 안잡는 것보다 속도에 영향을 미친다는 내용이 많이 있었습니다. 혹시 사이트의 수정이 거의 없는일반 페이지의 경우에는 가능한한 길게(예를 들어 10080분~20160분) 잡으세요. 게시판처럼 변화가 많은 페이지의 경우 캐싱시간 설정에서 1분으로 지정해 주세요!
2. CSS, JS파일, gzip으로 한꺼번에 압축해서 전송하기
내용 참고: http://www.xpressengine.com/19979181
요거 대박 팁입니다!! 속도 개선에 눈에 띄는 결과가 나옵니다....
1. http://code.google.com/p/minify/ 에서 minify 최신버전을 다운받습니다. 현재는 minify 2.1.5 버전입니다.
2. 압축해제 한후, min 폴더내의 config.php 파일을 에디터에서 불러오기 합니다.
3. 47번째쯤 라인의 //$min_cachePath = '/tmp'; 라는 부분을 $min_cachePath = './tmp'; 로 수정합니다.
4. min 폴더안에 tmp 라는 폴더를 새로 만들기합니다.
5. min 폴더를 FTP 로 서버의 루트디렉토리에 업로드합니다.
6. 서버에 업로드된 min 폴더안의 tmp 폴더의 퍼미션을 707 로 권한 변경합니다.
7. XE 설치폴더안의 .htaccess 파일을 에디터에서 불러오기합니다.
8. 아래의 2가지 경우중 해당되는 구문을 .htaccess 파일의 맨 아랫줄에 추가합니다.
XE 설치경로가 /xe/ 로 사용되는 경우
RewriteRule ^(.*\.(css|js))$ ../min/index.php?f=xe/$1 [L]
XE 설치경로가 루트디렉토리인 경우
RewriteRule ^(.*\.(css|js))$ /min/index.php?f=$1 [L]
9. 수정한 .htaccess 파일을 XE 폴더에 덮어쓰기 합니다.
제대로 설치됐는지 확인하시려면 사이트를 들어가서 트래픽을 발생시키셔서 tmp 폴더에 minify_xml ...로 시작하는 이상한 이름의 파일들이 생성되면 Okay!
3. XE에서 Gzip 사용하기
어떤 분이 쓰신 글인데, 원본글의 출처가 어디인지 찾을 수가 없어서 그냥 인용으로 합니다.
사이트가 넘 느려서 계속 고민하다가
gzip, defalte 압축을 하면 압축해서 text 문서가 왔다갔다 한다는 걸 듣고 이걸 적용해 볼려고
gooleing 했슴다.
근데 다 VPS 호스트 적용하는 거라 쉽지가 안더라구요.
근데 우리 XE 개발자님들 너무 감사해서 뽀뽀라도 해드리고 싶은 심정이네요.
XE 소스 안에 gzip적용할건지 Flag가 있더라구요.
고것만 true로 해주면 gzip OK!!
1. ./classes/display/DisplayHandler.class.php 파일을 에디터에서 불러오기 합니다.
2. 15번째줄에 var $gz_enabled = false; 을 var $gz_enabled = true; 로 수정합니다.
3. 수정한 DisplayHandler.class.php 파일을 서버의 해당 경로에 덮어쓰기 합니다.
사이트가 갑자기 날아다니는 듯한 기분??!!
확실한 차이 느낍니다.
Http header확인해 보는 방법은
http://www.askapache.com/online-tools/http-headers-tool/
이 사이트의 target URL에 입력후 밑에 버튼 누르면 target url의 header 분석해서 보여줍니다.
Content-Encoding: gzip 이라고 보입니다.
4. zlib.output_compression 사용하기
예전에 어떤 분이 여기 사용팁란에 올리셨는데 자삭하셨더라고요. 그래서 인용으로 합니다.
xe는 웹페이지 로딩 속도를 빠르게하기위해 내부적으로 ob_gzhandler함수를 사용하고있다.성능면에서 ob_gzhandler 은 별로 안좋으며 PHP 권장사항으로도 ob_gzhandler 대신 zlib.output_compression 사용할것을 권장하고있다.zlib.output_compression 을 사용하는방법..xe 1.4.5.10 기준..xe/config/config.inc.php 100 line..if(!defined('__OB_GZHANDLER_ENABLE__')) define('__OB_GZHANDLER_ENABLE__', 1); 제거후 그자리에 아래 코드 추가..define('__OB_GZHANDLER_ENABLE__', 0);ini_set('zlib.output_compression', 'On');ini_set('zlib.output_compression_level', 6);xe/modules/file/file.controller.php 124 line..function procFileDownload() { 다음행에 아래 코드 추가..ini_set('zlib.output_compression', 'Off');단 적용시 기존 파일은 백업하고 적용하시면 됩니다.
수정 소스가 있습니다. (방법)
1.4.5.10 버전 기준으로 했다고 하는데
제 홈피 1.5.0.7 버전에 적용해본결과 상당 외로 빠릅니다.
크롬,익스플로러8, 파이어폭스 등의 브라우저에서 확인 해본결과
생각 외로 빠릅니다.
하지만 제 주관적 느낌 입니다.
참고 > 웹 브라우저 로딩 속도 비교 사이트 http://whichloadsfaster.com/
5. 수정된 xml_handler.js 와 xml_js_filter.js 사용
참고: http://www.xpressengine.com/userForum/20681364
에 배워서 남준다님의 첫번째 댓글 내용과 첨부파일.
1. 아래 첨부된 xml_handler.zip 파일을 압축해제 합니다.
첨부파일 : xml_handler.zip
2. xml_handler.js 파일과 xml_js_filter.js 파일을 XE 설치폴더내의 ./common/js/ 폴더 안에 덮어쓰기 합니다.
저의 경우 위 다섯가지 팁을 이용하여 좀 더 빠른 사이트가 되었습니다.
더 좋은 팁이 있으시면 여러분이 많이 공유해주시면 좋겠어요~!!!
* 보다 쉬운 이해와 적용을 위해 배워서 남준다님이 수정하신 글로 일부 내용 수정했습니다.