Q&A

원본 글을 찾아보니 XE 공홈에서 삭제되어 없더군요. 복사해 놓은 글을 올리면서 문의드립니다.

예전 공홈에 올라있는 속도 개선 팁을 모아 놓은 글 하나가 있었습니다.

 

그 중에서 아래의 3가지를 적용해서 사용하고 있는데 제 기억으로는 4~5년 전의 팁으로 기억하는데

혹시 아직도 아래의 팁들이 현재의 XE버전에서도 적용 및 효과가 있는지가 궁금해서 문의드립니다.

 

 

 

1. CSS, JS파일, gzip으로 한꺼번에 압축해서 전송하기

내용 참고: https://xe1.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!

 

* sejin7940님께서 말씀하신 것처럼 minify는 PHP 5.1.6 이상(5.2.1이상이라고 어떤 글에는 써있네요.), 5.3 권장입니다. 

rewrite mod 도 지원해야 합니다.

 

이 이하의 버전에서는 잘 안될 수가 있습니다. 버전 확인 방법은 :

 

"자신의 php 버전을 확인하고프면..

그냥 root 에다가  <?=phpinfo()?>  를  적은 파일을 하나 생성하고  ( phpinfo.php 처럼)

그 파일을 웹상으로 접근해보면   php 버전을 확인가능합니다. " - sejin7940님

 

* 만일 레이아웃이 깨지면 min 폴더를 XE가 있는 폴더 안에 넣으세요~~  이렇게요... - 넥스트코코님.

00002.png

 

* 카페24에서 잘 안될때.... .htaceess 화일에

RewriteRule ^(.*\.(css|js))$ ./min/index.php?f=$1 [L]

로 넣어보세요.....^^ - 빛의바다님.

 

(참고로 저도 카페24를 사용하는데 빛의 바다님 구문말고, 원래 구문으로 잘됩니다.) 

RewriteRule ^(.*\.(css|js))$ ./min/index.php?f=$1 [L]

 

* 코어가 업데이트 되면 .htaccess 화일에  구문추가를 해주셔야 합니다.

 

 

 

2. 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/

 

 

 

 

3. 수정된 xml_handler.js 와 xml_js_filter.js 사용

 

참고: https://xe1.xpressengine.com/userForum/20681364
에 배워서 남준다님의 첫번째 댓글 내용과 첨부파일.

 

1. 아래 첨부된 xml_handler.zip 파일을 압축해제 합니다.

 

첨부파일 :  xml_handler.zip

 

2. xml_handler.js 파일과 xml_js_filter.js 파일을 XE 설치폴더내의 ./common/js/ 폴더 안에 덮어쓰기 합니다.

 

 

 

 

 

 

flowerrain Lv. 4

댓글 7

  • 1. 코어 설정파일로 디버그 모드를 켜지 않는한 기본적으로 minify된 파일을 사용하므로 적용할 필요 없습니다.
    2. https://github.com/xpressengine/xe-core/pull/1631 이 PR이 반영된 후에는 필요 없습니다.(언제일진 모르겠습니다만)
    3. 일**스* 사이트의 파일을 사용하는 것인데, 호환성 문제가 있을 수 있으므로 비권장합니다.
  • 1번은 zipperupper라는 애드온이 있습니다.

     

    2번은 요즘 대부분의 웹서버가 gzip 압축을 기본 지원하기 때문에 XE단에서 별도로 압축해 줄 필요가 없다고 생각합니다. 윗분이 링크 거신 패치를 적용하면 되지만, 실제로 최신 버전에서는 ob_gzhandler를 사용하든 zlib.output_compression을 사용하든 눈에 띄는 성능 차이는 없습니다.

     

    3번은 원래 내용이 뭐였는지 알 수 없어서 패스합니다.

  • @기진곰
    https://xe1.xpressengine.com/forum/20681364
    글 내용은 지워졌지만 댓글로 일모사이트 js임을 알수 있습니다.
  • 이제는 적용하지 않아도 되는군요. 두 분 모두 감사합니다. 역시 고수님들이라 속시원히 알려주시네요^^
  • 위 답변 요약: 무의미한 팁이에요.
  • 감사합니다. 조금 전 적용을 해제하고 원래의 xe 파일로 복원하니 그동안 1년 가까이 적용이 되질 않던 ckeditor 서식이 드디어 나타나서 사용할 수 있게 되었습니다. 호환성이 보장되지 않은 파일을 사용해서 그런 것 같군요.

    @YJSoft 님, @기진곰 님, @미솔 님 다시 한번 답글 주신 분들께 감사드립니다.^^ 새해 복 많이 받으세요.

  • 1. min.js 파일이 있다면 필요없습니다.
    2. 호환성 문제도 생기고 필요없다기보단 별로 권장을 안합니다.
    3. 현재 파일이 병합되어 써도 효과를 볼 수 없습니다. js파일을 수정하시는 방법 외엔.