제로보드 변환 (게시판, 그룹, 회원) > 그누4 변환

그누4 변환

타 게시판에서 그누보드4로 게시물을 옮겨주는 프로그램입니다.

제로보드 변환 (게시판, 그룹, 회원) 정보

제로보드 변환 (게시판, 그룹, 회원)

첨부파일

converter.zip (12.9K) 2863회 다운로드 2010-09-02 15:29:29

본문

제가 사용한 방법입니다.
이곳에 있는 파일들을 이용했고 조금씩 수정했습니다.


1. 그누보드 설치
  - 그누보드 설치후 첨부파일을 그누보드를 설치한 디렉토리에 압축을 푼다.


2. converter/zb4_config.php 수정
  - 경로 수정


3. http://URL/gnuboard/adm/ 로그인


4. 회원데이터변환
  - http://URL/gnuboard/converter/zb4_member.php


5. 회원그룹변환
  - http://URL/gnuboard/converter/zb4_group.php

  - 변환시 아래와 같은 권한 문제가 생길 경우 소스 수정
  ...
  LOCK TABLES zetyx_member_table READ, g4_group_member WRITE
  1044 : Access denied for user
'xxxx'@'localhost' to database 'XXXX'
  error file : /gnuboard/converter/zb4_group_update.php
  ...

  - converter/zb4_group_update.php [line: 36], 다음과 같이 주석처리
  ...
  //// for performance.
  //$sql = "LOCK TABLES zetyx_member_table READ, g4_group_member WRITE";
  //sql_query($sql);
  ...
  //$sql = "UNLOCK TABLES";
  //sql_query($sql);


6. 게시판 일괄 생성
  - http://URL/gnuboard/converter/zb4_board_make_all.php

  - 게시판에 대한 세부 설정은 변환후 개별 설정해야 한다. (다음 사항만 이전됨)
    - 권한('list', 'view', 'write', 'reply', 'comment', 'html')
    - 기타설정 ('secret', 'showip')
    - 그룹([5]에서 변환된 그룹만!)
    - 게시판 이름


7. 게시판 내용 변환
  - http://URL/gnuboard/converter/zb4_board.php

  - 제로보드 테이블과 그누보드 테이블을 선택하여 [변환]
 
  - 모든 게시판 변환할 때까지 반복!

 

댓글 전체

감사합니다.

덕분에 잘 변환하였습니다.

작업중 몇 가지 문제점에 대한 해결안을 공유합니다.

1. 타 서버로부터 첨부파일들을 FTP, SCP를 이용하여 새로운 서버로 이전할 경우 한글깨짐현상.

일반적으로 Linux서버는 시스템 기본이 UTF8로 되어있어서 다른서버에서 한글로 된 첨부파일들을 카피해올 경우 한글이름들이 깨집니다.
파일이름들이 깨지다보니 제로보드 폴더에서 그누보드 폴더로 파일들의 이전 및 변환 또한 불가능하게 됩니다. 당연히 파일의 크기도 가져올 수 없겠지요. 쉽게말해 파일을 읽지 못하게 됩니다.

서버를 직접 운영하거나 접근 권한이 있을 경우 아래 방법으로 간단히 해결할 수 있습니다.

convmv 사용.

레드헷 기반이라면 yum으로 인스톨하면 됩니다.

convmv --notest -f euckr -t utf8 -r '폴더이름'

'폴더이름' 안에 있는 모든 파일 중 euckr로 된 (깨져서 보이는) 파일 및 폴더들을 utf8로 바꿔줍니다.
따라서 한글이름으로된 모든 첨부파일들의 변환 시에 아무 문제가 생기지 않습니다.

2. 제로보드를 사용했다면 거의 패스워드 비트수가 다를 겁니다. 따라서, 멤버를 변환해도 로그인이 안될 수 있습니다.

아래 함수를 하나 추가합니다. (/extend 폴더안에 아무 php 파일 하나 만들어서 넣으면 됩니다.)

function sql_old_password($value)
{
    $row = sql_fetch(" select old_password('$value') as pass ");
    return $row[pass];
}

그리고...
/bbs/login_check.php의 아래부분을

if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
    alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}

이렇게 바꿉니다.

if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
if (sql_old_password($mb_password) != $mb[mb_password]) { // 기존 제로보드 아이디 로그인을 위해 추가함.
    alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
}


이상입니다.

잘 사용하였습니다.

감사합니다.
제가 지금 변환한 회원 로그인이 안되서 애를 먹고 있는데요..
function sql_old_password($value)
{
    $row = sql_fetch(" select old_password('$value') as pass ");
    return $row[pass];
}
이 함수를 제가 php로 만들어서 /extend 이 폴더에 넣어도 안되는데
혹시 이유를 알 수 없을까요 ? ? ?
다른 DB에 있어도 가능합니다. 소스를 약간만 수정하면 되지요...

$zbdb=mysql_connect('localhost', '아이디', '패스워드');
mysql_select_db('디비명', $zbdb);

위와같은 코드를 각 쿼리가 일어나는 페이지마다.. 혹은 common.php에 삽입하신 후에..

제로보드에서 읽어오는 쿼리에는 다음과같이...
sql_query($query)라고 된 부분을 sql_query($query, $zbdb)
이렇게 수정해주시면 DB가 달라도 이전이 됩니다.
제로보드가 다른 DB에 들어 있는 경우, SQL문에서 제로보드 테이블명 앞에 디비명을 붙여주는 방법도 있겠습니다. 예를들어, 만약 zb4라는 DB 안에 zetyx_board_notice 게시판이 있다면 zb4.zetyx_board_notice 로 바꿔주면 작업할 때마다 제로보드와 그누보드 DB를 번갈아가며 Select해서 바꿔줄 필요가 없습니다.
그래서 converter에 포함된 php 파일들을 EditPlus 같은데서 열어서 모든 "from zetyx_"로 시작하는 문구를 찾아서 "from DB명.zetyx_"로 바꿔주는 방법입니다.
다른것들은 다 잘 되었는데. 게시판내용변환시 시작줄에

Warning: chmod(): No such file or directory in /home2/kuhahat/public_html/gnuboard4/converter/zb4_board_update.php on line 71
Converting 'hirobbs' to 'hirobbs'...

라고 뜨며

마지막줄에

INSERT INTO g4_write_hirobbs SET ca_name = '일반', wr_option = ',,', wr_num = '-313', wr_reply = '', wr_subject = '오호..', wr_content = '드림하트 다시 부활이군요...\'ㅡ\' 이제부터 열심히 생활(?)해야 겠네요..\'ㅡ\' 윽 와보니 막상 할말이 없다는...ㅠ_ㅠ ', wr_link1 = '', wr_link2 = '', wr_hit = '864', wr_good = '0', mb_id = '', wr_password = '0214a41d480d4aad', wr_name = 'silver', wr_email = '*** 개인정보보호를 위한 이메일주소 노출방지 ***', wr_homepage = 'http://우리집은 페이지가 아닙니다...'ㅡ'v', wr_datetime = '2003-07-16 20:48:40', wr_ip = '61.43.37.41', wr_is_comment = 0, wr_comment = '1', wr_1 = '', wr_2 = '', wr_3 = '', wr_4 = '', wr_5 = '', wr_6 = '', wr_7 = '', wr_8 = '', wr_9 = '', wr_10 = ''

1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ㅡ'v', wr_datetime = '2003-07-16 20:48:40', wr_ip = '61

error file : /gnuboard4/converter/zb4_board_update.php


등으로 뜨면서 변환이 되질않습니다. 원인을 알수있을가요 ㅠㅠ
저도 같은 메세지가 떳던거 같은데...... 정확한 답이 될지는 모르겠지만 시간도 많이 지났고 경로 잘 찾아보세요~ zb4_config에서 경로 찾아줄때 그냥 상위폴더 없이 그냥 폴더명만 지정해주니까 오류 없이 그냥 깔끔하게 바로 변환되더라구요. 근데 경로를 이상하게 찾아쓸때는 저도 님같은 오류나서 다시 디비 지우고 그누보드 지우고 다시 해봤네요~ 경로를 한번 잘 보세요~ 그말뿌니는 할말이 -_ㅠ
감사합니다~ 제로보드에서 그누보드로 넘어와야 하는일이 있었는데 이것저것 걱정스러워서 미루다가 오늘에서야 해결 했네요^^ 완벽하게 옮겨졌구요. 경로 때문에 조금 삽질 하구 기존의 디비 지우고 난리 치다가 별 쓸데없는걸로 하다가 갑자기 정리되서 해보니까 한방에 해결 되네요^^
감사합니다~ 깔끔하게 옮겨졌어요^^
힘내자2님 제가 질문올린 글 좀 봐주세요.
http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=187010&page=0&posting=ok&sca=&sfl=&stx=&sst=&sod=&spt=0
다시 되돌리기 위해 회원 삭제하려는데 전혀 반응이 없네요..ㅜㅜ
다른 게시판들은 다 변환까지 완전하게 잘 되거든요..
근데, 희한하게 딱 한 게시판(사진게시판)만 변환이 안돼요.
정확히 말하자면 변환은 되는데, 첨부파일(사진들)이 안옮겨져요..
이거 어떻게 해야 할지 모르겠네요..
제로보드 4.0을 쓰고 있는데 그누보드 4 로 회원정보와 게시판을 옮기려고 합니다.
위와 같이 따라 해볼려고 하는데 제로보드 4.0은 버전이 낮아서 그누보드4를 함께 설치할 수가 없네요
이럴 경우 어떻게 해야 하나요?
정말 감사합니다.~~!!

깔쌈하게 변환 완료 했네요 ㅋㅋㅋㅋㅋㅋㅋ

파일도 싹다 잘 넘어왔습니다. 정말로 베리베리 감사 !ㅋㅋㅋㅋㅋㅋ
제로보드4에서 너무 많이 추가해서 고민이었는데 약간수정으로 컨버트 성공했었습니다.
정말 유용한 컨버터 감사드립니다. 덕분에 그누보드로 쉽게 넘어왔습니다. 강추합니다.^^
정말 감사합니다! 제로보드에서 넘어오는거, 말만 들었지 꿈도 못꾸고 있었는데,,
덕분에 너무 손쉽게 변환할 수 있었어요. 쪽쪽쪽~!
ㅠㅠ... 회원이 10만건 넘어가고 게시글이 몇만건씩 있는 게시판들이 있으면.. 이거 변환..하는데 무쟈게 오래걸리더군요. 결국 DB에서 쿼리로 해서 하는걸로 변경하니까.. 그제야 조금 빨라지는 군요. ㅋ;;
너무 늦었지만 혹시 라도 보시면 답변 부탁드립니다.
게시글 옮기는 부분에서. 첨부파일이 2개만 옮겨지는데. 무엇을 설정 을 변경해야 할가요???
전체 50 |RSS
그누4 변환 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT