g4 에서 g5로 갈아타기 > 그누보드5 팁자료실

그누보드5 팁자료실

g4 에서 g5로 갈아타기 정보

g4 에서 g5로 갈아타기

본문

안녕하세요.

말그대로 갈아타기 팁입니다. 해보니 크게 문제없이 돌아가네요.

본 내용은 그누보드4기반의 운영중인 홈페이지인 경우에 해당되는 팁으로, 테스트로 진행후 이상없을 시 이전을 하시길 권장드립니다.

그누보드4에서 dtd 버젼인 경우 크게 문제없이 이전이 됩니다만, 그누보드5경우 $g4[path] 변수가 다르게 대체됨과 여러가지 기능과 그에따른 필드가 생성이 됨으로써, 그리 간단치는 않습니다.
하지만, 다행인것은 그누보드5의 개발은 그누보드4를 기반으로 하는 것은 분명히 보이기에 이전이 가능하겠습니다.

1. 운영중 계정에 새로운 폴더(예: g5)를 생성합니다.

2. g5 전체(adm, bbs ,...., _common.php,....)를 g5로 ftp를 통해 복사를 합니다. (폴더 전체(예:g5-5.0b14)가 아닌 index.php 파일이 포함하는 폴더/파일)

3. g5/data/ 내 아래 내용을 dbconfig.php 파일로 저장하여 올립니다. 단, mysql 정보를 입력해야 합니다.


<?php
if (!defined('_GNUBOARD_')) exit;
define('G5_MYSQL_HOST', 'localhost');
define('G5_MYSQL_USER', '');//mysql id
define('G5_MYSQL_PASSWORD', '');//mysql password
define('G5_MYSQL_DB', '');//mysql dbname

define('G5_TABLE_PREFIX', 'g4_');

$g5['write_prefix'] = G5_TABLE_PREFIX.'write_'; // 게시판 테이블명 접두사

$g5['auth_table'] = G5_TABLE_PREFIX.'auth'; // 관리권한 설정 테이블
$g5['config_table'] = G5_TABLE_PREFIX.'config'; // 기본환경 설정 테이블
$g5['group_table'] = G5_TABLE_PREFIX.'group'; // 게시판 그룹 테이블
$g5['group_member_table'] = G5_TABLE_PREFIX.'group_member'; // 게시판 그룹+회원 테이블
$g5['board_table'] = G5_TABLE_PREFIX.'board'; // 게시판 설정 테이블
$g5['board_file_table'] = G5_TABLE_PREFIX.'board_file'; // 게시판 첨부파일 테이블
$g5['board_good_table'] = G5_TABLE_PREFIX.'board_good'; // 게시물 추천,비추천 테이블
$g5['board_new_table'] = G5_TABLE_PREFIX.'board_new'; // 게시판 새글 테이블
$g5['login_table'] = G5_TABLE_PREFIX.'login'; // 로그인 테이블 (접속자수)
$g5['mail_table'] = G5_TABLE_PREFIX.'mail'; // 회원메일 테이블
$g5['member_table'] = G5_TABLE_PREFIX.'member'; // 회원 테이블
$g5['memo_table'] = G5_TABLE_PREFIX.'memo'; // 메모 테이블
$g5['poll_table'] = G5_TABLE_PREFIX.'poll'; // 투표 테이블
$g5['poll_etc_table'] = G5_TABLE_PREFIX.'poll_etc'; // 투표 기타의견 테이블
$g5['point_table'] = G5_TABLE_PREFIX.'point'; // 포인트 테이블
$g5['popular_table'] = G5_TABLE_PREFIX.'popular'; // 인기검색어 테이블
$g5['scrap_table'] = G5_TABLE_PREFIX.'scrap'; // 게시글 스크랩 테이블
$g5['visit_table'] = G5_TABLE_PREFIX.'visit'; // 방문자 테이블
$g5['visit_sum_table'] = G5_TABLE_PREFIX.'visit_sum'; // 방문자 합계 테이블
$g5['uniqid_table'] = G5_TABLE_PREFIX.'uniqid'; // 유니크한 값을 만드는 테이블
$g5['syndi_log_table'] = G5_TABLE_PREFIX.'syndi_log'; // 네이버 신디케이션 컨텐츠 삭제 로그 테이블
$g5['autosave_table'] = G5_TABLE_PREFIX.'autosave'; // 게시글 작성시 일정시간마다 글을 임시 저장하는 테이블
$g5['cert_history_table'] = G5_TABLE_PREFIX.'cert_history'; // 인증내역 테이블
$g5['qa_content_table'] = G5_TABLE_PREFIX.'qa_content';//1:1 내용
$g5['qa_config_table'] = G5_TABLE_PREFIX.'qa_config';//1:1 환경
?>


4. 아래 내용을 파일(임의의 파일명.php)로 저장하여 g5/extend/내 올립니다. (예 : index.php)
페이지가 한번 로딩되면서 필요한 필드를 생성하기 위함입니다.


sql_query("alter table $g5[group_table] add `gr_show_menu` tinyint(4) NOT NULL default '0' ", false);
sql_query("alter table $g5[group_table] add `gr_device` ENUM('both','pc','mobile') NOT NULL DEFAULT 'both' ", false);
sql_query("alter table $g5[group_table] add `gr_order` int(11) NOT NULL default '0'", false);

sql_query("alter table $g5[board_table] add `bo_mobile_subject` varchar(255) NOT NULL DEFAULT ''", false);
sql_query("alter table $g5[board_table] add `bo_device` enum('both','pc','mobile') NOT NULL DEFAULT 'both'", false);


sql_query("alter table $g5[board_table] add `bo_order` int(11) NOT NULL DEFAULT '0'", false);
sql_query("alter table $g5[board_table] add `bo_show_menu` tinyint(4) NOT NULL DEFAULT '0'", false);

sql_query("alter table $g5[point_table] add `po_use_point` int(11) NOT NULL default '0'", false);
sql_query("alter table $g5[point_table] add `po_mb_point` int(11) NOT NULL default '0'", false);
sql_query("alter table $g5[point_table] add `po_expired` tinyint(4) NOT NULL default '0'", false);
sql_query("alter table $g5[point_table] add `po_expire_date` date NOT NULL default '0000-00-00'", false);
sql_query("alter table $g5[point_table] add KEY `index2` (`po_expire_date`)", false);

sql_query("
CREATE TABLE IF NOT EXISTS $g5[qa_config_table] (
  `qa_title` varchar(255) NOT NULL DEFAULT'',
  `qa_category` varchar(255) NOT NULL DEFAULT'',
  `qa_skin` varchar(255) NOT NULL DEFAULT '',
  `qa_mobile_skin` varchar(255) NOT NULL DEFAULT '',
  `qa_use_email` tinyint(4) NOT NULL DEFAULT '0',
  `qa_req_email` tinyint(4) NOT NULL DEFAULT '0',
  `qa_use_hp` tinyint(4) NOT NULL DEFAULT '0',
  `qa_req_hp` tinyint(4) NOT NULL DEFAULT '0',
  `qa_use_sms` tinyint(4) NOT NULL DEFAULT '0',
  `qa_send_number` varchar(255) NOT NULL DEFAULT '0',
  `qa_admin_hp` varchar(255) NOT NULL DEFAULT '',
  `qa_use_editor` tinyint(4) NOT NULL DEFAULT '0',
  `qa_subject_len` int(11) NOT NULL DEFAULT '0',
  `qa_mobile_subject_len` int(11) NOT NULL DEFAULT '0',
  `qa_page_rows` int(11) NOT NULL DEFAULT '0',
  `qa_mobile_page_rows` int(11) NOT NULL DEFAULT '0',
  `qa_image_width` int(11) NOT NULL DEFAULT '0',
  `qa_upload_size` int(11) NOT NULL DEFAULT '0',
  `qa_insert_content` text NOT NULL,
  `qa_1_subj` varchar(255) NOT NULL DEFAULT '',
  `qa_2_subj` varchar(255) NOT NULL DEFAULT '',
  `qa_3_subj` varchar(255) NOT NULL DEFAULT '',
  `qa_4_subj` varchar(255) NOT NULL DEFAULT '',
  `qa_5_subj` varchar(255) NOT NULL DEFAULT '',
  `qa_1` varchar(255) NOT NULL DEFAULT '',
  `qa_2` varchar(255) NOT NULL DEFAULT '',
  `qa_3` varchar(255) NOT NULL DEFAULT '',
  `qa_4` varchar(255) NOT NULL DEFAULT '',
  `qa_5` varchar(255) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
", false);


sql_query("
CREATE TABLE IF NOT EXISTS $g5[qa_content_table] (
  `qa_id` int(11) NOT NULL AUTO_INCREMENT,
  `qa_num` int(11) NOT NULL DEFAULT '0', 
  `qa_parent` int(11) NOT NULL DEFAULT '0',
  `qa_related` int(11) NOT NULL DEFAULT '0',
  `mb_id` varchar(20) NOT NULL DEFAULT '',
  `qa_name` varchar(255) NOT NULL DEFAULT '',
  `qa_email` varchar(255) NOT NULL DEFAULT '',
  `qa_hp` varchar(255) NOT NULL DEFAULT '',
  `qa_type` tinyint(4) NOT NULL DEFAULT '0',
  `qa_category` varchar(255) NOT NULL DEFAULT '',
  `qa_email_recv` tinyint(4) NOT NULL DEFAULT '0',
  `qa_sms_recv` tinyint(4) NOT NULL DEFAULT '0',
  `qa_html` tinyint(4) NOT NULL DEFAULT '0',
  `qa_subject` varchar(255) NOT NULL DEFAULT '',
  `qa_content` text NOT NULL,
  `qa_status` tinyint(4) NOT NULL DEFAULT '0',
  `qa_file1` varchar(255) NOT NULL DEFAULT '',
  `qa_source1` varchar(255) NOT NULL DEFAULT '',
  `qa_file2` varchar(255) NOT NULL DEFAULT '',
  `qa_source2` varchar(255) NOT NULL DEFAULT '',
  `qa_ip` varchar(255) NOT NULL DEFAULT '',
  `qa_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `qa_1` varchar(255) NOT NULL DEFAULT '',
  `qa_2` varchar(255) NOT NULL DEFAULT '',
  `qa_3` varchar(255) NOT NULL DEFAULT '',
  `qa_4` varchar(255) NOT NULL DEFAULT '',
  `qa_5` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`qa_id`),
  KEY `qa_num_parent` (`qa_num`,`qa_parent`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
", false);

sql_query("
CREATE TABLE IF NOT EXISTS ".$g5['uniqid_table']." (
  `uq_id` bigint(20) unsigned NOT NULL,
  `uq_ip` varchar(255) NOT NULL,
  PRIMARY KEY (`uq_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
", false);


sql_query("
CREATE TABLE IF NOT EXISTS ".$g5['syndi_log_table']." (
  `content_id` int(11) NOT NULL,
  `bbs_id` varchar(50) NOT NULL,
  `title` text NOT NULL,
  `link_alternative` varchar(250) NOT NULL,
  `delete_date` varchar(14) NOT NULL,
  PRIMARY KEY  (`content_id`,`bbs_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
", false);


sql_query("
CREATE TABLE IF NOT EXISTS ".$g5['autosave_table']." (
  `as_id` int(11) NOT NULL AUTO_INCREMENT,
  `mb_id` varchar(20) NOT NULL,
  `as_uid` bigint(20) unsigned NOT NULL,
  `as_subject` varchar(255) NOT NULL,
  `as_content` text NOT NULL,
  `as_datetime` datetime NOT NULL,
  PRIMARY KEY (`as_id`),
  UNIQUE KEY `as_uid` (`as_uid`),
  KEY `mb_id` (`mb_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
", false);
 


5. 도메인/g5/ 로 접속합니다.

이렇게 함으로써 기본적으로 이전은 일단, 완료가 됩니다만, 외 필요한 테이빌 및 필드가 충분이 있을 수 있습니다.
그런 경우 테이블이나 필드가 없다는 오류를 띄우게 되며, 당황할 필요없이 이때는 간단히 해당 필드를 위 index.php 파일에 계속 추가하며 생성해 주면 거의 완벽한 이전이 가능할 것입니다. 만약, index.php 파일에 넣어도 안될 경우 common.php 파일 중상쯤에 넣어서 아무페이지나 로딩시켜주면 됩니다.

부가적으로, 기존의 $g4[path]변수가 포함된 페이지를 사용할 경우 아래와 같이 일반적으로 G5_URL상수값을 $g4[path]로 대체하면 가능하겠지만 그누보드5에는 G5_PATH , G5_URL로 분리사용되므로 가급적 수정을 하는 것을 권장드립니다.

config.php 하단부에 추가합니다.

$g4[path]=G5_URL;//$g4[path]가 html내 사용된 경우 적용이 가능하며, include 등이 사용될 경우 에러가 발생합니다.

결론은, 그누보드4는 table prefix  기본 g4_ 입니다. 그누보드5는 g5_ 이지만, g5의 table prefix를 g4로 바꾸고, 기존에 없던 테이블, 필드만 생성하면 이전이 간단히 해결되겠습니다.

도움되시길 바랍니다.

아울러, 그누보드5, 영카트5의 건승을 기원합니다.

아! 질문은 받지 않습니다^^
추천
4

댓글 5개

g4 를 g5로 이전하기 #5 (  추가하기 )



4. 아래 내용을 파일(임의의 파일명.php)로 저장하여 g5/extend/내 올립니다. (예 : index.php)
페이지가 한번 로딩되면서 필요한 필드를 생성하기 위함입니다.
.....  최신버전의 경우에은 위에 언급된 것 이외에 필드가 여러개 더 추가되었습니다.
아래 내용으로 저장하면 누락된 필드를 추가할수 있습니다.

추가 수정된 코드는 http://www.happyjung.com/bbs/board.php?bo_table=lecture&wr_id=1639 에서 확인할수 있습니다.
코멘트 글자수 제한으로 인하여 내용을 다 적을수가 없군요....

<?php
if (!defined('_GNUBOARD_')) exit;

sql_query("alter table $g5[board_table] add `bo_mobile_subject` varchar(255) NOT NULL DEFAULT ''", false);
sql_query("alter table $g5[board_table] add `bo_device` enum('both','pc','mobile') NOT NULL DEFAULT 'both'", false);
sql_query("alter table $g5[board_table] add `bo_use_list_file` tinyint(4) NOT NULL default '0' ", false);
sql_query("alter table $g5[board_table] add `bo_mobile_subject_len` int(11) NOT NULL default '0' ", false);
sql_query("alter table $g5[board_table] add `bo_mobile_page_rows` int(11) NOT NULL default '0' ", false);
sql_query("alter table $g5[board_table] add `bo_mobile_skin` varchar(255) NOT NULL default '' ", false);
sql_query("alter table $g5[board_table] add `bo_mobile_content_head` text NOT NULL ", false);
sql_query("alter table $g5[board_table] add `bo_mobile_content_tail` text NOT NULL ", false);
sql_query("alter table $g5[board_table] add `bo_gallery_width` int(11) NOT NULL default '0' ", false);
sql_query("alter table $g5[board_table] add `bo_gallery_height` int(11) NOT NULL default '0' ", false);
sql_query("alter table $g5[board_table] add `bo_mobile_gallery_width` int(11) NOT NULL default '0' ", false);
sql_query("alter table $g5[board_table] add `bo_mobile_gallery_height` int(11) NOT NULL default '0' ", false);
sql_query("alter table $g5[board_table] add `bo_show_menu` tinyint(4) NOT NULL DEFAULT '0'", false);
sql_query("alter table $g5[board_table] add `bo_order` int(11) NOT NULL DEFAULT '0'", false);
sql_query("alter table $g5[board_table] add `bo_use_cert` enum('','cert','adult','hp-cert','hp-adult') NOT NULL DEFAULT ''", false);
sql_query("alter table $g5[board_table] add `bo_use_sns` tinyint(4) NOT NULL default '0' ", false);

...
전체 2,431 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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