#title JSBoard Upgrade 문서

[[tableOfContents]]

== 개요 ==

JSBoard 1.3에서 v2.x로의 업그레이드는 몇번의 변환 과정을 거쳐야 하니다. 키 포인트는 '''''1.3.x -> 2.0.0 -> 2.0.6 -> 2.0.7 이상버전'''''의 과정을 거쳐서 업데이트가 되면  된다.

== v1.3.3 에서 v2.0.0 upgrade ==

이 단락는 JSBoard  v1.3.3 에서 2.0 으로 업그레이드를 하는 방법을 다루도록한다. 개인적인 예상으로는 최소한 1.3 버젼에서는 모두 적용이 되리라 생각이 된다.

먼저 1.3 버젼과의 가장큰 특징은 2.0 에서 '''''인증 기능과 skin 기능이 추가'''''되었다는 점이다. 그러므로 JSBoard 의 main table 외에 인증에 필요한 table 이 추가가 되어
야 한다.

일단 각 게시판 테이블 마다 인증에 필요한 컬럼 1개와 사용하지 않는 moder 칼럼을 삭제하도록 한다. '''''INSTALLER/script''''' 로 이동을 하여 dbconv_to_20 파일을 열은 다음 필요한 변수값을 지정 해 준 다음 해당 파일의 퍼미션을 755 로 수정한 후에 실행하 면 변환을 해 준다.

 {{{#!vim sh
shell> ./dbconv_to_20
}}}

'''''INSTALLER/SQL''''' 로 이동을 하여 userdb table 을 생성하도록 한다.

만약 다른 회원 table 을 사용할 경우에는 userdb table 을 생성할 필요가 없다. 이 경우는 아래의 명령을 생략하고 doc/ko/README.OPERATE 문서의 5.외부의 회원 DB 사
용하기 함목을 참고하도록 한다.

 {{{#!vim sh
shell> mysql -u USER -p DB_NAME < userdb-OSTYPE.sql
}}}

을 실행하도록 한다. USER는 global.ph 의 $db[user] 의 값을 지정해 주며, DB_NAME에는 '''''$db['name']''''' 의 값을 지정한다. OSTYPE 은 여러분들의 OS 에 맞춰서 선택하면 된다. 현재로서 freebsd와 linux가 지원이 되며, openbsd,netbsd 의 경우에는 freebsd를 선택하면 되고, solaris 의 경우에는 linux를 선택해서 하면 된다. 그 이외의 OS에서는 알수가 없다.

다음 jsboard 2.0 의 소스를 풀도록 한다.

 {{{#!vim sh
shell> tar xvfpz jsboard-2.0.tar.gz
}}}

압축을 푼다음 이전의 jsboard 게시판에서 data/* 와 config/* 을 2.0 의 소스로 복사를 하도록 한다.

 {{{#!vim sh
shell> cp -af $PATH/jsboard-old/data/* $PATH/jsboard-new/data/
shell> cp -af $PATH/jsboard-old/config/* $PATH/jsboard-new/config/
}}}

복사를 마쳤으면 이제 설정 파일들을 변환을 해야 한다. JSBoard 2.0 에서는 1.3 버젼대의 설정파일을 2.0 style 로 변환을 해 주는 convert program 을 제공한다.  이 프로그램을 시작하기 전에 이 파일을 열어서 가장 윗라인의 펄경로를 지정하도록 한다. 기본값으로는 RH의 rpm으로 설치되어 있는 /usr/bin/perl 이 지정이 되어 있다. 만약 이 경로가 아니라면 수정을 해 줘야 한다.

 {{{#!vim sh
shell> cd $PATH/jsboard-2.0/INSTALLER/script
shell> ./conv_udate

       global.ph 변환중

       a board 작동중
       b board 작동중
       ...

shell>
}}}

과 같이 작동을 하게 된다. 일단 설정파일 변환을 마쳤다면 같은 디렉토리에 존재하는 root_p 나 account_p 를 이용하여 퍼미션을 조정 하여야 한다. 일단 root 권한이 있으면 root_p 를 실행하면 되고, 계정유저들은 account_p 를 이용하도록 한다.

여기까지 했으면 기본적으로 설치는 완료가 된다. 설치가 완료가 되었으면 config/gloabal.ph 에서 몇가지를 수동으로 설정을 해줘야 한다.

 {{{#!vim php
# 로그인 변수명. 보안상 수정하는 것을 권장
$jsboard         = "login";

# 로그인 모드에서 로그인후에 돌아갈 기본 페이지를 지정. 꼭 게시판이 아니어도
# 상관없음
$print['dpage'] = "http://work.oops.org/jsboard/list.php?table=test";

# 업로드 파일의 최대 용량을 지정 (byte)
$upload['maxsize'] = "2000000";           # upload max size

# 메일 기능 사용여부. 0 으로 설정하면 메일 기능을 아예 사용하지 않음
$rmail['uses']     = 1;

# MTA type
# 1 - 메일 서버가 sendmail 을 사용할 경우에는 꼭 1을 선택
# 0 - php 의 mail() 함수를 사용
$rmail['mta']      = 1;

# 메일 서버 주소
$rmail['smtp']     = "127.0.0.1";

# JSBoard 의 웹 경로
$rmail['bbshome']  = "http://work.oops.org/jsboard/";
}}}

의 값들을 다시 정확하게 지정을 해줘야지 운영을 하는데 지장이 없다. 이 설정은 전체 관리자의 global 설정에서도 변경을 할수가 있다. 이제 global.ph 의 설정을 마쳤다면 관리자 페이지에 로그인을 하여 관리자 패스워드를 변경하도록 한다.

global.ph 의 설정에 대해서는 README.OPERATE 문서를 참고하도록 한다. 이곳에서 빠진 설명이 있을 수도 있으니 말이다.

'''''http://domain.com/jsboard-2.0/login.php?type=admin''''' 으로 접속을 한다. 접속을 하여 유저 관리에서 admin 의 패스워드를 변경하도록 한다. 이 문서를 보고 업그레이드를 한 사람들의 전체 관리자 ID는 admin 이며, 기본 패스워드는 "0000" 이니 참고하여 로그인을 하도록 한다.

다음 각 게시판의 관리자로 가서 세부 설정을 해 주면 된다.


== v2.0.5 이하 버전에서 v2.0.6 upgrade ==

2.0.6 에서는 comment 알고리즘이 변경이 되어 DB 조작이 필요하다. 커멘트를 사용하는 게시판의 리스트를 볼때 comm field 관련 에러가 뜨면 이 이유이다.


2.0.6 으로 업데이트를 한 후, 전체 admin 관리자로 로그인을 하도록 한다. 로그인 후에 테이 블 리스트를 보면 커멘트 테이블에는 "동기화" 라는 버튼이 존재를 한다. 커멘트를 사용하는 게시판들은 모두 이 "동기화" 버튼을 클릭하여,  동기화를 시켜줘야 한다.

만약 전체 관리자가 이를 해 주지 않고, 각각의 게시판 관리자에게 맡기려면 각 게시판 관리자에게 관리자 페이지를 한번 들어가서 확인을 해 주면 알아서 작동을 한다.


== v2.0.6 에서 v2.0.7 이상으로 upgrade ==

2.0.7 부터는 '''.ph''' 를 사용하던 확장자가 '''.php''' 로 변경이 되었기 때문에 단순한 변경 작업이 필요하다.

일단, 2.0.7 의 압축을 풀어 놓은 다음 기존의 '''''jsboard/data/*''''' 와 '''''jsboard/config/*''''' 의 내용을 jsboard-2.0.7 의 data/config 에 복사를 하도록 한다. 복사를 한 후에, jsboard-2.0.7 디렉토리에서 다음의 명령을 실행하도록 한다.

 {{{#!vim sh
find ./ -name *.ph -exec rename .ph .php {} \;
find ./ -name *.ph.orig -exec rename .ph .php {} \;
}}}

이 명령을 실행 한 후에, '''''INSTALLER/script/''''' 로 이동을 하여 root 권한이 있는 사용자는 ./root_p 를, 계정 사용자 권한이라면 ./account_p 를 실행하여 주면 된다.


== 2.0.7 이상 버전의 upgrade ==

기존의 jsboard 에서 '''''global/*''''' 과 '''''data/*''''' 을 복사를 한다.

 {{{#!vim sh
cp -af jsboard.old/global/* jsboard.new/global/
cp -af jsboard.old/data/* jsboard.new/data/
}}}

'''''jsboard.new/INSTALL/scripts''''' 로 이동하여, root_p 나 account_p 를 실행을 한다.
