APM에서 MySQL, 그누보드4(EUCKR, UTF8) 설정 @ Windows > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

APM에서 MySQL, 그누보드4(EUCKR, UTF8) 설정 @ Windows 정보

APM에서 MySQL, 그누보드4(EUCKR, UTF8) 설정 @ Windows

첨부파일

g4euckr_for_MySQLutf8.zip (19.9K) 52회 다운로드 2006-02-15 18:23:23
g4utf8_for_MySQLeuckr.zip (20.6K) 34회 다운로드 2006-02-15 18:23:23

본문

초보가 기술적으로 잘 모르는 상태에서 이런걸 써도 될런지는 모르겠습니다만...
일단 제일 간단한 테스트 몇개까지는 해보고 올리는 것이니... 양해해주시길... ^^;

"꼭 이거다!" 까지는 아니고 여러 방법중의 하나일 뿐입니다.

글을 쓰는 목적은... 역시 저같은 초보의 입장에서
서버(APM)도 직접 설치하시고 그누보드도 돌리고자 하실때 조금이나마 도움이 되었으면 하고,
그리고 저도 나중에 잊어버리지 않기위해서... (ㅡ.ㅡ;)
서버 설정에서 가장 까다롭고 문제가되는 문자셋 설정에 대해서
여기저기 흩어진 정보들과 제가 경험해본것들을 간단하게나마 정리하고자 합니다.

제가 그누보드 설정하는데 가장 결정적인 도움을 받은 글이 바로 아래 두 글입니다.
http://sir.co.kr/bbs/tb.php/g4_tiptech/2463 (by tron)
http://sir.co.kr/bbs/tb.php/g4_tiptech/2497 (by Photofly)

제 글은 단지 위 글의 초보용버전이라고나 할까요.
아마도 그냥 무작정 따라하시면 성공하시지 않을까 싶습니다. (아~ 서론이 넘흐 길어진다... ㅡㅡ;)
제가 글을 워낙 못써서... 그냥 본론으로 들어갑니다.

결론적으로는 특정 문자셋으로 설정된 MySQL에서
그누보드 두가지 버전을 다 사용하고, phpmyadmin에서도 안깨져보이게 됩니다.

1. Apache, PHP의 문자셋은 별도로 설정하지 않습니다.

    Apache :
        http.conf 파일의
        AddDefaultCharset 부분이 있으면 주석처리(기본 설치상태에서는 없음)

    PHP :
        php.ini 파일의
        Default_charset : xxxx 부분 역시 주석처리

2. MySQL 설치

    euckr 또는 utf8 둘 중 하나로 설치해주시길....

    단, 여기서 중요한것은 되도록이면 가장 최신버전으로 설치해 주시기 바랍니다.
    이유는 제가 이 글에서 사용하고자 하는 옵션이 4.1.15 이후에 추가된 옵션으로 알고있습니다.
    (글 쓰는 현재 5.0.18, 4.1.18 입니다.)

    설치후 my.ini에 아래 옵션을 살짝 '추가'해주세요.
   
    --------------------------------------------------------------------------
    [client] 에
    default-character-set=utf8 또는 default-character-set=euckr
    (설치하신 문자셋으로)

    [myseld] 에
    skip-character-set-client-handshake

    그리고
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    이 활성화 되어있다면 주석처리 해주세요.
    --------------------------------------------------------------------------

    인터넷에 보시면...
    init_connect=SET collation_connection = utf8_general_ci
    init_connect=SET NAMES utf8
    character-set-server=utf8
    collation-server=utf8_general_ci
    등도 추가되어 있는데, 테스트 해본바로는 위에 세개만 설정하시면 됩니다.
    (제로보드는 테스트 안해봤습니다.)

3. 그누보드 설치

1) MySQL과 서로 같은 문자셋이라면 그냥 설치하세요.

2) MySQL과 서로 다른 문자셋이라면 '설치전에' 첨부파일 다운받아서 그누보드 폴더에 풀어주시던가,

  Photofly님 글(http://sir.co.kr/bbs/tb.php/g4_tiptech/2497)을 참고해서
  common.php, common.lib.php, install_db.php들을 편집해주시면 됩니다.

  MySQL = euckr, 그누보드 = utf8 이면 Photofly님 글 그대로 하시면 되고,
  DB 생성은 utf8_general_ci으로... (g4utf8_for_MySQLeuckr.zip)

  MySQL = utf8, 그누보드 = euckr 이면 Photofly님 글 그대로 하시면서,
  수정부분에서 utf8 이라고 되어있는 부분을 euckr로 대체하시면 됩니다.
  DB 생성은 euckr_korean_ci으로... (g4euckr_for_MySQLutf8.zip)

  위와 같이 수정하신 후 설치...

3) 마지막으로 그누보드 utf8 버전이시라면, MySQL 문자셋과 상관없이 공통적으로
 
  /skin/member/skin_name/register_form.skin.php 파일의
  mb_nick_check 함수의 가장 아랫부분에 (basic의 경우 470라인쯤)

  win_open(g4_path+"/"+g4_bbs+"/member_nick_check.php?mb_nick="
                                        +document.fregisterform.mb_nick.value, "hiddenframe");

  이것을...

  var temp = encodeURI(document.fregisterform.mb_nick.value);
  win_open(g4_path+"/"+g4_bbs+"/member_nick_check.php?mb_nick="+temp, "hiddenframe");
 
  으로 수정하세요. 별명 확인할때 깨지는것 해결하기 위함입니다.(이것은 심플로그님의 팁~)

끝.

처음 설치하시는 분들 부디 성공하셨으면 좋겠습니다.
첨 올리는 팁인데... 안된다면 초난감... ㅡ.ㅡ;

일단 초보님들은 이 글과 같이 세팅하시면 대부분 잘 돌아가지 않을까 싶습니다.
자세한 기술적인 사항들은... 고수님들께 은근슬쩍 넘겨드리고 갑니다. v(ㅡ.ㅡ;)V
추천
0
  • 복사

댓글 15개

스크랩합니다. 수고 많으셨습니다. 더불어 질문도~

저 mysql 은 한개의 DB계정에만 적용되는것이죠?
다른 DB계정에는 다른보드 euc-kr버전이 설치되어 있는데..
관계없겠죠?




네... 예를들어... 하나의 서버에...

DB1을 euc-kr로 생성하고... 그누euc-kr 설치....
DB2를 utf-8로 생성하고... 그누utf-8 설치...
DB3를 euc-kr로 생성하고... 다른보드 euc-kr 설치...

이런식으로 가능합니다.

단지 그누보드는 두 버전이 모두 존재하고 거기에 대한 대책을 tron님과 Photofly님께서 해결해주셨으니
상관없겠지만, '다른보드'가 euc-kr 이라면 MySQL을 euc-kr로 설치하시고, utf-8 이라면 MySQL을 utf-8로
설정해서 운용하시는게 좋을듯 싶습니다. ^^;
감사합니다. 지금 운영중인 홈피 지우고 새로 설치해보겠습니다.
자료를 백업받았다가 그대로 사용은 못하겠죠?
왠지 그럴것 같아.. 새롭게 할 각오로 해보겠습니다.

힛;;
흠... 저도 시작한지 얼마 안되서... 하위버전은 잘 모릅니다만...ㅡ.ㅡ;
4.0.x 버전이라면... collation등이 세세하지 않아서 그다지 까다롭지는 않은걸로 (대충) 알고있습니다.
참고로 말씀드리자면...

skip-character-set-client-handshake

이녀석이 하는일이... 상위버전의 collation/charset에대한 동작을 4.0.x 가 했던것처럼...
그때 그시절로 돌려주는 그런 옵션이라고 합니다.
엄밀하게 말하자면... 만든사람들 입장에서는 그다지 추천하는 옵션은 아닌것으로 보입니다. ㅡ.ㅡ;


아래는 MySQL.com 에 올라온 위 옵션에 대한 설명입니다.

Don't ignore character set information sent by the client. To ignore client information and use the default server character set, use --skip-character-set-client-handshake; this makes MySQL behave like MySQL 4.0.

A new command line argument was added to mysqld to ignore client character set information sent during handshake, and use server side settings instead, to reproduce 4.0 behavior.

이부분에 대해서는 고수님들의 조언이 필요할듯... ^^;
좋은 팁 감사합니다...

http://sir.co.kr/bbs/tb.php/g4_tiptech/2497

저는 조금 다르게 이 글의 팁을 그대로 적용하여
=============================================
서버 설정 부분에

1. httpd.conf 에서 기본언어설정안함

# AddDefaultCharset UTF-8

2. php.ini 에서 기본언어설정안함

; default_charset = "iso-8859-1"
; default_charset = "utf-8"

3. my.cnf 에서 캐릭터셋 수정

[client]
#password = your_password
default-character-set=utf8

[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

[mysql]
default-character-set=utf8
==================================================
위와같이 서버를 구성하고,

그누보드 G4 EUC-KR 버전의 파일중에서
common.php, common.lib.php, install_db.php들을
@mysql_query("set names euckr"); // 한글문제해결을위하여 추가
위 소스 한줄을 쿼리날리는 부분마다 넣어주고 해결하였습니다..
==================================================

그누보드를 설치할때 디비를

UTF-8 버전 = utf8_general_ci
EUC-kr 버전 = euckr_general_ci

로 다르게 생성하여 설치하였을때

UTF-8 , EUC-kr 버전 모두
phpmyadmin 에서나, 그누보드에서나 한글 입출력이 모두 정상적으로 이루어지더군요...
====================================================

덕분에 심플로그님 팁까지 UTF-8버전의 register_form.skin.php 파일에 응용하여
아이디/별명/이메일 체크 부분에 모두 적용하여 이상없이 동작하는것을 확인하였습니다..감사합니다...^^

이제 두가지 버전 모두 완벽해결 입니다...

0sama 님 좋은 팁 감사합니다....^^
앗~ 해결하셨군요... 아까 올리셨던 댓글 보구서... 이것저것 해봤는데...
아무리해도 같은 증상을 만들어내지 못해서... 왜그럴까... 하고있었는데...
다행입니다. ^^;

다음 배포판부터
EUC-KR 버전은 @mysql_query("set names euckr"); 을...
UTF-8 버전은 @mysql_query("set names utf8"); 을...
아예 추가해서 나오면 사용자들이 설치할때 아주 편할듯 싶네요. ^^;
(MySQL과 같은 문자셋이면 없어도 상관없기는 하지만...)

참고로 제로보드도... .html,  .css,  .php,  txt 파일들을 UTF-8 포맷으로 변환하고... (생~ 노가다를...)
해당 파일들 내에 'EUC-KR' 이라고 되어있는 부분들을 'UTF-8'로 대체한 후...
DB를 utf8_general_ci 로 생성해서 설치해보니... 잘(?) 돌아갑니다.
다만, 마찬가지로 메시지 창에서 한글을 띄우는 부분은 역시 깨져서 나오고...
어느부분인지 찾아보기가 그러해서... 그냥 확인만 했습니다. 한글 첨부파일 문제는 역시 안되더군요.
그누보드처럼 영문/숫자 조합으로 저장했다가 불러오는게 좋을듯...
(그렇게 해서 쓰는분들이 계신것 같은데... 저는 크게 수정해서 쓰기에는 아직 초보라... ㅡ.ㅡ;)

사실 한글 첨부파일 문제때문에 그누보드를 찾게 됐었죠... ^^;
결정적인 팁을 제공해주신 tron님과 Photofly님, 그리고 심플로그님께 다시한번 감사드립니다.
회원가입 메뉴 별명체크부분 말씀이신가요? 저는...
MySQL euckr에서 그누 euc-kr, utf8 버전...
MySQL utf8에서 그누 euc-kr, utf8 버전...
모두 별명체크 팝업 정상으로 나오던데...
다른 숨겨진 부분인가요?
별명체크부분 말고라면... 가능성이 충분히 있습니다만... ^^;
위의 답글과 같은 환경에서
디비 euckr 에서 그누 euc-kr 버전 입니다..
IE 7의 문제일수도 있어요...불여우에서는 이상없거든요...^^
© SIRSOFT
현재 페이지 제일 처음으로