처음에 미디어위키(Mediawiki)를 데비안(Debian)서버에서 사용할 때는 잘 모르기도 했고, 그 전에 다른 환경에서 넘어오는 게시판들이 같이 동작해야 했기 때문에, 동작되는 것을 최우선으로 설정을 하였다.


다른 게시판들은 WEB서비스환경이 euc-kr 환경에서 넘어왔고, 미디어위키는 utf-8 이었기 때문에, 솔직히 자신이 없었다. 하지만, 지금까지 쓰던 미디어위키를 내 개인 노트북(Notebook)에서 쓰고 싶어지면서, 비전문가인 나로서는 삽질 밖엔 대안이 없었다.

 

그 결과 데비안서버에서 작동하고 있는 미디어위키의 Mysql은 latin1 을 기본값으로 가지고 있고, 내부에서 사용하는 캐릭터셋은 utf-8이라는 것을 알게 되었다. 결과적으로 아래 그림과 같은 환경이라는 말이었다.


 

그래서 XP에서도 똑같은 환경으로 만들어 주면, 별 지장없이 동작할 것이므로 똑같이 만들어 주고 백업받은 DB를 넣어 주었다.


물론 이 때에는 내가 모르는 몇 가지 사항이 더 있었지만, 결과적으로 잘 동작했다. 데비안에서 DB를 백업받는 명령은 다음과 같다.

 

 # mysqldump -u wikiuser -p wikidb --default-character-set=latin1 > wikidb_latin1.sql

 # mysqldump -u wikiuser -p wikidb --default-character-set=utf8 > wikidb_utf8.sql

 

주) 위 두가지의 백업파일을 모두 사용가능하였다. 그런데, latin1으로 백업받은 파일은 한글이 잘 보이지만(putty 를 utf8로 설정할 경우), utf8로 백업받은 파일은 한글이 깨져 보였다.

 

C:\Windows\my.ini 의 다음 줄을 찾아 euckr이 기본 캐릭터셋으로 지정되어 있는 것을 코멘트 처리해 주었다.(RWAPM의 경우)

 

#default-character-set=euckr

skip-character-set-client-handshake

 

그리고 나서 mysql를 재시작하고 다시 캐릭터셋지정을 확인해 보면 다음과 같다. 물론 latin1으로 지정하여도 같은 결과가 나올 것이다. 이것은 mysql을 컴파일할 때, 기본 옵션을 그렇게 지정했기 때문이란다.


 

XP에 미디어위키를 설치하는 것은 다른 게시물을 참고하면 된다. 설치할 때 만들어진 DB에 다음과 같은 명령으로 데이터를 복구하면 된다.

 

 주) 이 방법대로 하려면 DB를 latin1으로 만들어야 하므로 collation도 latin1_swedish_ci 를 선택하여야 할 것이다.



주) 내 경우에는 mysql의 초기값이 데비안 기본값인 latin1 으로 설정되어 있었다. 그러나, 미디어위키의 DB데이터 자체는 utf-8로 되어있어, 이전할 때 iconv 를 사용할 필요는 없었다.

 

물론 위의 내용은 기본값 latin1 이던 DB를 그대로 옮겨와서 사용하기 위한 것이다. 미디어위키를 신규로 설치할 경우는  미디어위키 XP에 처음 설치하기-DB설정(RWAPM) 를 참고하라.



Posted by novice9

댓글을 달아 주세요

XP에서 ED라는 에디터로도 UTF-8 <=> EUC-KR 캐릭터셋 변환을 할 수 있지만 당연히 리눅스 상에서 할 수 있다. 주로 리눅스상에서는 iconv 를 많이 사용하며 사용예는 다음과 같다.  euc-kr로 작성된 html 의 캐릭터셋 변환시 유용할 것이다. 

 $ iconv -f EUC-KR -t UTF-8 -c souce_file > dest_file

 

주) 만약 -c 옵션을 쓰지 않으면, 캐릭터셋 변환과정에서 없는 문자 이후에는 변환되지 않을 수 있다.

그러니, 안전을 위해서 -c 옵션을 쓰는 것이다.

 

만약을 위해 매뉴얼 페이지도 첨부한다. 

ICONV(1)                       Debian GNU/Linux                       ICONV(1)

NAME
       iconv - Convert encoding of given files from one encoding to another

SYNOPSIS
       iconv -f encoding -t encoding inputfile

DESCRIPTION
       The iconv program converts the encoding of characters in inputfile from
       one coded character set to another. The result is written to standard
       output unless otherwise specified by the --output option.

       --from-code, -f encoding
              Convert characters from encoding.

       --to-code, -t encoding
              Convert characters to encoding.

       --list, -l
              List known coded character sets.

       -c     Omit invalid characters from output.

       --output, -o file
              Specify output file (instead of stdout).

       --silent, -s
              Suppress warnings, but not errors.

       --verbose
              Print progress information.

       --help, -?
              Give help list.

       --usage
              Give a short usage message.

       --version, -V
              Print program version.

AUTHOR
       iconv was written by Ulrich Drepper as part of the GNU C Library.

       This man page was written by Joel Klecker <espy@debian.org>, for the
       Debian GNU/Linux system.

3rd Berkeley Distribution            etch                             ICONV(1)

 

이번에 이 유틸리티를 유용하게 사용하였는데, Tcl Script를 돌려서 나온 결과값을 윈도우2000서버의 ASP와 연동시키기 위해서였다.

 

 Tcl에서도 분명히 EUC-KR을 위한 옵션이 존재하는 데도, 제대로 동작하지 않아, UTF-8로 돌려야만 했고, 이 결과를 ASP로 넣으면 처리가 안 되는 것이었다.

 

 물론 실력이 모자라서 그렇지만, 내가 전업으로 프로그래밍을 하는 것도 아닌 담에야......

'IT > 서버설정' 카테고리의 다른 글

데비안서버 보안설정  (0) 2009.05.18
아파치 서버 설정(계정 Rewrite)  (0) 2009.05.17
데비안 mod_url 추가  (0) 2009.05.17
데비안의 로케일 설정  (0) 2009.05.17
APM환경에서 보안설정(데비안)  (0) 2009.05.17
리눅스 iconv 로 캐릭터셋 변환하기  (0) 2009.05.15
Posted by novice9

댓글을 달아 주세요

이전버튼 1 이전버튼

블로그 이미지
이 블로그는 삽질을 기록하는 곳입니다. ^_^
novice9
텍스트큐브,티스토리 검색

달력

 « |  » 2018.02
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28      

최근에 받은 트랙백

글 보관함

Yesterday145
Today85
Total2,360,045