홈페이지 서버 이전 ( euc-kr -> utf-8, php4.x -> php5.x , mysql4.x -> mysql5.x) 정보
홈페이지 서버 이전 ( euc-kr -> utf-8, php4.x -> php5.x , mysql4.x -> mysql5.x)본문
안녕하세요.
최근에 오래된 홈페이지들을 새로운 서버에 이전작업하며
필요했던 몇가지 이슈들을 정리해보았습니다.
지극히 저의 경우이기에 서버환경과 그누보드 환경에 따라 다를수 있으니
참고만 되시길 바랍니다.
최근에 오래된 홈페이지들을 새로운 서버에 이전작업하며
필요했던 몇가지 이슈들을 정리해보았습니다.
지극히 저의 경우이기에 서버환경과 그누보드 환경에 따라 다를수 있으니
참고만 되시길 바랍니다.
지금 기술하는 홈페이지 이전 내용은 현재까지 그누보드 홈페이지들을 옮기면서 나온 일반적인 문제일뿐이지 모든 경우 해당되는건 아니다.
아래 내용들이 불필요할수도 , 아니면 이보다 더 필요할수도 있다.
1. 웹호스팅(cafe24)에서 db백업, data백업을 한다.
그러면 웹호스팅 용량을 차지 하지 않고서 db는 dump의 파일로 data는 tar.gz 의 파일로 www 상단폴더에 저장된다.
2. 이전할 신규서버에 해당 폴더에 db와 data를 저장한다
3. data 압축풀기
압축되는 파일형식에 맞는 방법으로 압축을 푼다.
" tar zxvf 해당파일 "
4. data 문자셋 변환 (euc-kr ->utf-8 변환이 필요한 경우)
리눅스콘솔에서 find 와 iconv 명령어로 파일의 문자셋을 변환합니다.
사용되는 확장자별로 따로따로 작업할 명령어이니 1줄씩 복사에서 넣으시면 됩니다.
마지막에 *.db는 zip.db 파일하나 때문에 넣은겁니다.
find . -type
f -name "*.php" -print -exec iconv -f euc-kr -t utf-8 -o {}.converted
{} \; -exec mv {}.converted {} \;
find . -type f -name "*.html"
-print -exec iconv -f euc-kr -t utf-8 -o {}.conerted {} \; -exec mv
{}.converted {} \;
find . -type f -name "*.htm"
-print -exec iconv -f euc-kr -t utf-8 -o {}.converted {} \; -exec mv
{}.converted {} \;
find . -type f -name "*.js"
-print -exec iconv -f euc-kr -t utf-8 -o {}.converted {} \; -exec mv
{}.converted {} \;
find . -type f -name "*.db"
-print -exec iconv -f euc-kr -t utf-8 -o {}.converted {} \; -exec mv
{}.converted {} \;
5. config.php (euc-kr -> utf-8으로 변경시)
그누보드의 기본 문자셋을 설정하는 함수가 선언되는 곳이다.
그누보드 루트폴더에 존재하는 파일이다.
아래와 같이 utf-8로 변경한다
$g4['charset'] = "utf-8";
6. dbconfig.php 수정 (db 정보 변경시)
홈페이지 서버 이전을 하게되니 db 정보가 대부분 틀려지겠죠.
host, id, db, pw등 정보들을 그누보드의 루트 폴더에 있는 dbconfig.php를 수정하세요.
7. ./lib/common.lib.php 수정 (php4 -> php5 변환시)
파일 내용중에 검색해보면 아래와 같은 명령어가 있다.
$row = sql_fetch(" select password('$value') as pass ");
php4 -> php5로 전환시 몇가지 신경써야할 문제가 있지만
그누보드에서는 대표적인게 password 함수이다.
아래와 같이 old_password로 변경해준다.
$row = sql_fetch(" select old_password('$value') as pass ");
8. db 파일의 문자셋 변환(euc-kr -> utf-8으로 변경시)
리눅스콘솔에서 iconv 명령어를 통해 dump된 db파일의 문자셋을 변경한다.
iconv
-f euc-kr -t utf-8 변환전 파일명 > 변환후 파일명
-f euc-kr -t utf-8 변환전 파일명 > 변환후 파일명
9. g4_visit, g4_popular 데이터 삭제 (mysql 4 -> mysql 5)
이유는 찾아 보지 않았다. db를 집어 넣으려 하니
여러가지 경우의 에러가 있었지만 g4_visit, g4_popular 에서는 거의 모든 경우에러가 나서 dump가 진행되지 않았다.
아무 에러메시지 없이 db가 들어가길 바랬기에 해당 2개의 테이블의 data들을 몽땅 날려버렸다.
통계관련된 필드임으로 이전시 꼭 필요한 정보라면 다른 방법을 찾아야한다.
10. db 넣기
콘설에서 mysql 명령어로 db를 넣는다.
mysql -f -u아이디 -p비밀번호 db명 < db덤프파일명
-f 명령을 붙히면 에러나는 부분의 라인을 알려준다.
해당 라인에 가서 문제를 해결한다.
주로 특이한 한글들이 정확하게 인식되지 않아서 ' 쉼표등이 없어져서
에러가 나는 경우이다. 많이 않다면 수동으로 삭제하고 많다면 해당 테이블의 이전 중요도 여부를 판단하고 table을 날리거나
다른 방법을 찾아야겠다.
11. ***마무리후 체크
- 자주 register_form.php 파일이 문자셋이 변환이 안되어서 따로 해당 member skin 파일만 문자셋을 변경하여서 적용한적이 많다. 이유는 정확히 모르겠다. 그러다보니 회원가입시
- 홈페이지 접속시 브라우저에 뜨는 타이틀의 문자가 깨지는 경우가 있다. 이런경우 index파일 meta charset이 그누보두 charset함수값을 사용하지 않고 넣는경우이다. utf-8 별도로 변경이 필요하다.
- 각각 페이지별로 문자셋이 변환되지 않았을경우 그누보드 charset 함수가 선언된 파일을 사용하지 않아서이다. 개별적으로 charset값을 변환해야한다. head안에 있는 metat charset값들을 일정 폴더내에서 일괄적으로 변경하고 싶은때에는 리눅스 명령어find를 통해서 일괄 치환할수 있다.
" find ./htm -name "*.*" -exec perl -pi -e 's/euc-kr/utf-8/g' {} \;
추천
1
1
댓글 7개
정말 좋은 정보 감사합니다~~
감사합니다^^
좋은정보네요~
3. data 압축풀기...
요기에서 주의할점은 압축하기전에 data 폴더의 하부폴더와 파일들의 소유권을 호스팅계정의 것으로 변경하셔야 합니다.
통상 nobody 나 apach 등으로 소유권이 잡힌경우, 압축되지 않을수 있습니다.
이것은 호스팅사에 연락하시면 변경해줍니다.
요기에서 주의할점은 압축하기전에 data 폴더의 하부폴더와 파일들의 소유권을 호스팅계정의 것으로 변경하셔야 합니다.
통상 nobody 나 apach 등으로 소유권이 잡힌경우, 압축되지 않을수 있습니다.
이것은 호스팅사에 연락하시면 변경해줍니다.
이 작업 할려고 이틀동안 이글저글 찾아다니며 작업하고 있었는데, 필요한 정보가 여기 다 적혀있군요!!
딱 저의 상황과 동일합니다...ㅜㅠ)b
딱 저의 상황과 동일합니다...ㅜㅠ)b
좋은 정보에 감사드립니다.
요긴하게 쓰겠습니다.
고맙습니다.
고맙습니다.