그누보드 4 -> 5 마이그레이션
본문
euc-kr ==> utf-8 으로 변경이 필요합니다.
오류없이 가능할까요??
미리... 감사드립니다...
답변 4
가능은 한데.. PHP 버전, MYSQL 버전 등의 차이로 인해 잔잔한 에러들은 그때 그때 수정을 하셔야 합니다~
아래 순서로 작업해 보세요.
- G4 euc-kr --> G4 utf-8 변환 : 별 에러 없었음.
- G4 utf-8 ---> G5 utf-8 업그레이드: DB만 업그레이드 됨. (mysql 버전 차이로 로그인 안 될 수 있음. 코드 수정 필요)
- G4 utf-8 스킨 커스텀을 G5 utf-8 원본에 입히기: php 버전의 차이로 인해서 코드 수정 불가피할 수도 있음.
초보자가 직접 하기엔 좀 무리인 작업이긴 합니다. 하지만 못 할 것도 없어요.
실제로 제가 초보 때 제 홈페이지도 배추빌더4 EUC-KR 버전에서 배추빌더5 UTF-8 버전으로 업그레이드 성공했으니까요. 다만, 정말 많은 시간이 소요되니 서비스가 목적이시면 의뢰로 해결하시고, 공부가 목적이시면 일단 PHP 기본 문법과 그누보드5 매뉴얼과 FAQ를 공부해보세요.
오류는 무조건 있습니다
-- 먼저 데이터베이스와 테이블 문자셋에 대해서 utf-8로 변경을 해야합니다.
> 데이터 베이스 문자셋 변경
ALTER DATABASE [데이터베이스명] CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
> 테이블 문자셋 변경
ALTER TABLE [테이블명] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 그 다음에 할것이 그누보드 소스의 문자셋을 변경하는 방법입니다. 소스의 양이 많으므로 리눅스에 iconv를 활용하여 변경하셔야 합니다.
> iconv를 활용해서 변경하는방법
iconv -f EUC-KR -t UTF-8 [파일명] -o [새파일명]
예를들어 파일이 여러개가 있다면 리눅스에서 다음과 같은 코드로 일괄적으로 변경을 하실수 있습니다.
아래는 리눅스에서 Bash 스크립트를 활용하여 작성해보았습니다.
for file in *.php; do
iconv -f EUC-KR -t UTF-8 "$file" -o "utf8_$file"
done
-- 마지막으로 그누보드 상단에 해더쪽을 변경해주셔야합니다. 이부분 사용자들에 사용자 마다 하드코딩을 하거나 해서 조금씩 상이 할수 있다고 볼수 있습니다. (참고 하실점은 5버전의 해더에선 정의 되어있으므로 이부분은 확인해보시고 필요 여부에 따라 적용하시기 바랍니다.)
// 이부분을
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
// 아래와 같이변경해주셔야합니다.
<meta charset="UTF-8">
-- 마지막으로 php에서 해더일경우 변경작업일경우 해주셔야할부분 (경우에 따라 안해도 됩니다.)
// 이부분을
header('Content-Type: text/html; charset=EUC-KR');
// 요렇게 변경해주세요
header('Content-Type: text/html; charset=UTF-8');
이외 4에서 5로 변경하시려면 g4_import.php 소스를 돌리시면됩니다.
참고 하실점은 변형이 없는 순정 그누보드에서만 이전한다면 오류는 거의 없을수 있으나... 대부분이 사이트 설정에 맞게 디자인 외 기능 변형작업을 하기 때문에 그냥 이관한다면 오류는 발생할수 있습니다.
따라서 이부분은 소스 분석을 해서 상위버전에 맞는 오류부분을 수정작업을 하셔야 할겁니다.
위에 안내드린대로 하나씩 차근차근 해보시기 바랍니다.
!-->!-->!-->