Bookworm’s Archive 잡동사니 속에 숨겨진 보물 찾기

293/09

cafe24 가상 서버 호스팅 사용기

이 글을 쓴 이후에 6월 5일에 cafe24로부터 메일을 받았습니다. 가상서버호스팅의 문제를 해결했으니 사용해보라는 메일이었습니다. 그 뒤로 시간이 없어 제대로 테스트 해보지 못하였습니다. 오늘(7월 11일)에서야 다시 블로그를 가상 서버 호스팅으로 이전하여 테스트 해보았는데 간혈적인 멈춤 현상이 발생하는 것은 비슷했습니다.

물론 이는 꼭 cafe24 가상호스팅의 문제만으로 단정하기는 어렵습니다. 워드프레스와 서버 환경간의 호환 문제일 수도 있고 iptables와 가상화 솔루션 간의 궁합 문제일 가능성도 있습니다.

아뭍든지 제 개인적인 생각으로 일반 사용자에게 서비스를 해야하는 것은 가상화 보다는 일반 웹서버 호스팅이 더 낫지 않을까 싶습니다. 규모가 훨씬 크다면 역시 서버 호스팅이나 코로케이션을 받아야하겠지요.


꽤 오랬동안 cafe24 웹호스팅을 이용했습니다. 트래픽이 많은 블로그도 아니고 딱히 큰 불만도 없었으니까요.

얼마 전에 사용기간 만료 메일이 와서 조금 고민을 했습니다. 왜냐하면 가끔 페이지가 늦거나 안 뜨는 경우가 있다는 것이 조금 마음에 걸렸거든요. 고민을 하던 참에 가상서버호스팅을 제공하고 있다는 것을 알았습니다. 그동안 서버 호스팅을 받고 싶었지만 비싼 가격 때문에 주저했는데 월 5,500원(주1)의 저렴한 비용이라 바로 신청을 했습니다. 초기 설치비 2만 2천원에 1년치 요금을 내고 나니 8만원이 조금 넘는 금액이 나왔습니다. 초기 설치비가 조금 비싸다는 생각이 드는군요.

설치 완료 됐다는 안내 메일을 받고 root 로 접속해서 패키지 업데이트 하고 이것저것 설정을 잡아나갔습니다. httpd, mysqld 등등 다 설치를 하고 웹호스팅에서 돌리고 있던 서비스들을 모두 옮겨왔습니다. 제 PC에 있던 소스 코드와 레포지토리도 업로드 했습니다.

한 3일을 짬짬히 설정하고 웬만큼 다 됐다고 생각했는데 저녁 시간만 되면 블로그 속도가 기어가더군요. 한 페이지를 여는데 5초 이상 걸리기도 했습니다. 특별히 속도를 요구하는 것은 없지만 그나마 블로그는 다른 분들도 읽어보시는터라 도저히 안 될 것 같더군요.

그래서 웹호스팅을 연장 결제하고 블로그만 다시 원래 자리로 옮겨놓았습니다.

가상서버호스팅이란 것이 하나의 서버 안에 소프트웨어를 이용해 가상으로 여러개의 OS를 띄우는 것이다 보니 속도를 기대하는 것은 어려울 듯 합니다. 다만 저렴한 비용으로 24 시간 내내 동작하는 나만의 서버를 가질 수 있다는 점은 매우 큰 장점 같습니다. 특히 개발 작업을 하다보면 root 권한이 꼭 필요한 경우가 많습니다. 이럴 때 유용 할 듯 합니다.

cafe24 외에도 가상서버호스팅을 제공하는 업체는 많습니다. 현재 제일 저렴하기 때문에 cafe24에서 신청을 했습니다만 다른 업체를 이용하셔도 큰 차이는 없을 듯 합니다.

(주1) 월 5,500원 요금제는 20 기가의 하드 디스크 용량과 월 트래픽 100 기가, 메모리 512 MB를 제공합니다.

1312/06

Cafe24 UTF-8 서버 이전기

Zeroboard 5와 Mediawiki 를 위해서 UTF-8 서버로 이전한지도 꽤 시간이 흘렀습니다. 정작 ZB5는 IE7 과 문제 때문에 못 쓰고, Mediawiki 는 다른 서버에 설치해버렸군요.

덕분에 기존에 제가 쓰던 서비스들을 UTF-8에서 동작하도록 모조리 수정해야했습니다. 이 장대한(?) 삽질기를 간략한 기록으로 정리하려고 합니다. 혹시 UTF-8로 이전하신 분들께 도움이 됐으면 합니다.

주의 : 본 내용은 리눅스 시스템에 친숙한 분들께 참고용으로 쓴 것입니다. 본 내용에는 오류가 있을 수 있으며, 이에 관련한 피해에 대해서는 각자 본인 책임하에 진행해야 합니다. 또한, UTF-8 이전 작업은 까다로우므로 자신이 없는 분은 가급적 주위 분들의 도움을 구하시는 것을 추천합니다.

  1. MySQL을 백업합니다.
  2. $ mysqldump -c -ufoobar -p foobar > foobar.sql

  3. ~/www 디렉토리를 백업합니다.
  4. $ cd ~
    $ tar -cvzf foobar.tar.gz ~/www

  5. 모두 PC로 다운로드 받아둡니다.
  6. http://hosting.cafe24.com 에 가서 이전을 신청합니다.
  7. 이전 완료 메일이 도착하면 새 UTF-8 서버로 접속해서 코드를 확인합니다.
  8. $ set | grep LANG

  9. 문서 편집기를 이용해서 foobar.sql 파일내에 있는 테이블의 인코딩을 EUC-KR 에서 UTF-8 로 바꿉니다.
  10. MySQL 덤프를 업로드 합니다.
  11. foobar.sql 파일의 인코딩을 변환합니다.
  12. /usr/bin/iconv -c -f euc-kr -t utf-8 foobar.sql > foobar_utf8.sql

  13. MySQL 덤프를 넣습니다.
  14. $ mysql -ufoobar -p foobar < foobar.sql

  15. PC에 있는 foobar.tar.gz 을 풉니다.
  16. FileZilla 와 같이 강제로 UTF-8 을 사용할 수 있는 FTP 프로그램을 사용해서 푼 파일들을 서버로 업로드 합니다. convmv 를 사용하면 서버에서 할 수도 있을 것 같지만 cafe24 에는 해당 프로그램 안 보입니다.
  17. 우선 웹에 접속해서 페이지가 열리는지 확인합니다.
  18. 이제 각 서비스를 수정합니다. 제가 사용하는 phpBB2와 JSBoard만 설명드리는 것을 양해 부탁드립니다.
  19. 아래와 같은 내용으로 utf8php.sh 라는 스크립트를 하나 만듭니다. "*.php" 부분을 "*.tpl" 과 "*.template" 로 변경해서 각각 utf8tpl.sh, utf8template.sh 로 스크립트를 만릅니다.
    #!/bin/sh

    for i in $( find . -name "*.php" ); do
    if [ -f $i ]
    then
    /usr/bin/iconv -f UHC -t utf-8 -o $i.tmp $i
    mv -f $i $i.bak
    mv -f $i.tmp $i
    fi
    done

  20. 각각 실행 권한을 주세요.
  21. $ chmod 755 utf8*.sh

  22. phpBB2 디렉토리로 이동한 후에 utf8php.sh 와 utf8tpl.sh 스크립트를 실행합니다.
  23. JSBoard 디렉토리로 이동한 후에 utf8php.sh 와 utf8template.sh 스크립트를 실행합니다.
  24. phpBB2의 ./language/lang_korean/lang_main.php 파일의 41 번째줄을 아래와 같이 편집합니다. 편집 위치는 버전에 따라 약간 변합니다.
  25. $lang['ENCODING'] = 'utf-8';

  26. Attachment Mod 를 사용하신다면 ./download.php 파일의 187 번째줄을 아래와 같이 편집합니다.
  27. header('Content-Disposition: inline; filename="' . urlencode($real_filename) . '"');

  28. phpBB2가 정상적으로 보이는지 확인합니다.
  29. JSBoard의 ./act.php 파일의 568, 573 번째줄을 아래와 같이 편집합니다. 편집 위치는 버전에 따라 약간 변합니다.
  30. header("Content-Disposition: attachment; filename=".urlencode($dn['name']));

  31. JSBoard의 ./include/LANG/ko.php 파일의 4 번째줄을 아래와 같이 편집합니다.
  32. $langs['charset'] = "UTF-8";

  33. JSBoard의 ./include/check.php 파일의 264~269 줄을 주석처리합니다.
  34. /*
    # file 이름에서 특수문자가 있으면 에러 출력
    # 한글 영역과 한자 영역은 허락 함
    if ( preg_replace ("/[\w\d._\-]|[\xB0-\xC8\xCA-\xFD][\xA1-\xFE]/",'', urldecode ($f)) ) {
    print_error($langs['act_de'],250,150,1);
    exit;
    }
    */

  35. JSBoard의 ./include/check.php 파일의 242 줄에 아래 코드를 추가합니다.
  36. $list['bofile'] = urlencode($list['bofile']);

  37. JSBoard의 ./include/parse.php 파일의 327~328 번째줄을 아래와 같이 편집합니다.
  38. $s = mb_substr($s,0,$l, "UTF-8");
    // $s = preg_replace("/(([\x80-\xFE].)*)[\x80-\xFE]?$/","\\1",$s);

1310/06

UTF-8 로 바꾸었습니다.

Cafe24 웹호스팅을 쓰면서 EUC-KR 기반이었습니다. 불안하게도 이 블로그는 EUC-KR 기반에서 돌아가는 UTF-8 이었지요.

ZB5와 mediawiki를 써볼 요량으로 UTF-8 계정을 신청해서 어제 이전했습니다. 모두 백업을 받고 새 계정이 만들어지고, 다시 업로드와 복구 하는데 꽤 시간이 걸렸습니다. 특히 인코딩 관련해서 걸림돌이 많았습니다.

현재 블로그, phpBB, JSBoard는 이전을 마친 상태입니다. 다만 EUC-KR로 인코딩한 파일명을 사용하는 JSBoard가 문제군요. 업로드 파일쪽의 문제는 앞으로 방법을 찾을 생각입니다.

이전이 마무리되면 이전에 방법에 대한 내용을 정리할 생각입니다. (이렇게 공개적으로 약속하지 않으면 특유의 게으름으로 안 할 것이 분명해서 적습니다.)

OS, DB, Web이 UTF-8 로 통일되니 딱 정리된 것이 보기가 좋습니다. :cool: