Whiteship's Note


테터를 옮길때 링크 문제와 해결 방법

모하니?/Blogging : 2007.01.21 10:59


테터의 상태 그리고 옮기는 방법에 따라 발생하는 문제가 달라집니다.

테터의 상태
제가 옮겨야 할 테터의 상태는 버젼 1.0.6.1에 차칸 팀블로그 플러그인 0.7이 설치되어 있었습니다. 그리고 도메인이 바뀝니다.

옮기는 방법
1. DB덤프를 떠서 옮기기(테터 그 상태 그대로 서버만 바꾸기)
2. 테터의 관리자 기능에 있는 데이타 백업 -> 복원을 사용하는 것이 있습니다.

발생하는 문제
1번과 2번 방법 둘 다 발생하는 문제로는 문서간의 링크가 짤린다는 것입니다. 도메인이 아예 바껴버리기 때문에 참 난감한 상황이였습니다.

2번의 경우에는 여기에 더해서 모든 글의 작성자가 관리자 이름으로 바뀝니다.

문제 해결하기
2번 방법으로 해결하기
먼저 2번 방법을 사용했을 때 문서의 링크를 살리는 방법으로는 백업 파일인 xml파일을 문서 편집기로 불러드려서 문서 안에 있는 링크들을 바꾸기 메뉴를 사용해서 바꿔주는 것입니다. 예를 들어 기존 도메인이 http://web.net 이고 새로운 도메인이 http://agile.net 이면 http:web.net 부분을 찾아서 http://agile.net으로 바꿔주는 작업입니다.

이렇게 바꾸고 나서 복원을 하고 나면 겉으로 보기엔 깔끔하게 링크가 다시 살아난걸로 보이며 실제로 링크들이 제대로 동작합니다. 하지만... 모든 글의 포스팅이 by '관리자 네임'으로 바뀌게 됩니다.

이것은 테터가 기본적으로 단일 사용자용으로 설치 되어 있었기 때문에 팀블로그 플러긴을 사용하고 있었다 할지라도 한명의 사용자로 테터가 인식했기 때문에 모든 글의 작성자가 한명.. 즉 관리자로 통일이 되어 버립니다. xml을 수정 하지 않고 단순히 백업 -> 복원을 거치기만 해도 이 문제는 발생합니다.

따라서 2번 방법은 막히게 됩니다.

1번 방법으로 해결하기
그럼 1번 방법에서 어떻게 방법이 없을까 생각해 보다가 '덤프뜬 sql도 xml수정하듯이 수정해버리면 되겠네.'라는 생각이 번뜩였고 바로 작업에 들어갔습니다. 덤프뜬 sql을 윈도우로 받아와서 1. 텍스트 에디터, 2. 워드패드, 3. 이클립스 에서 불러와서 링크를 수정하는 일들을 하고 다시 덤프를 DB에 복원하기 위해 mysql -u 유저 -p DB < 수정된 덤프파일.sql 을 입력하면 1과 2를 사용하여 수정된 파일은 sql 형식이 맞지 않다면서 들어가지 않습니다. 원인은 문서의 형식이 깨져버려서 제대로 들어가지 못합니다. 3번을 사용하여 작업한 파일은 제대로 들어가지만 문서의 인코딩 문제로 글자가 전부 깨져버립니다. 하지만 링크가 전부 산 것을 확인하고 이 방법이 먹히는 것을 알 수 있었습니다.

문제 해결에는 실패 했지만... 실마리를 찾았습니다.
문서 형식을 깨지 않고 인코딩을 깨지 않고 원하는 부분의 텍스트만 수정을 하면 문제는 해결 된다는 믿음이 생겼습니다.

다시 도전
그러다 떠오른 것이 vi 에디터 왜 진작에 서버에서 직접 파일 편집할 생각을 안했을까 싶었습니다. 원인은 vi에 친숙하지 못했고 몸에 익숙한 윈도우에서 작업하길 원해서 불필요하고 불편함[각주:1]을 vi에서 텍스트 전환하는 명령을 검색하는 노력을 하지 않았기 때문입니다. 자신도 모르게 저의 내부의 적이 제 안에서 절 조종하고 있더군요.[각주:2]

vi의 : 커맨드 모드에서 %s/찾을패턴/바꿀패턴/g 이렇게 하면 문서 전체에서 바꿀패턴으로 바꿔줍니다.[각주:3]속도도 저 위에서 사용했던 어떠한 편집기보다 빨랐습니다.[각주:4]

그리고 vi를 사용하여 수정된 덤프 파일을 DB에 집어 넣은 순간.. 나이스!!!!
vi 파이팅!

  1. 서버에서 덤프 다운 받고 -&gt; 윈도우에서 파일 수정하고 -&gt; 서버로 올리는 불편함. [본문으로]
  2. 적의 화장법 [본문으로]
  3. url의 경우 / 때문에 난감하실 수 있는데요. /는 / 이렇게 표현하면 됩니다. [본문으로]
  4. 텍스트 에디터 5분, 워드 패트 5초, 이클립스는 10초, vi 1초 [본문으로]
신고
top


테터 그 상태 그대로 서버만 바꾸기

모하니?/Blogging : 2007.01.13 12:53


실험 대상은 테터 버전 1.0.6.1 에 차칸아이 플러그인 0.7c 가 설치되어 있었습니다.

1. 옮기려는 대상 서버에 접속 해서 테터가 설치된 폴더를 tar로 묶기
tar cvf [저장될 파일명] [묶을 폴더]
예) tar cvf tt.tar ./tt

2. 테터가 사용하는 DB 덤프 뜨기
mysqldump -u 사용자아이디 -p 데이터베이스명  > 저장될 파일명
예) mysqldump -u agilejava -p agilejava > whiteship.sql

이제 이사갈 짐싸는 일은 끝났습니다. 저렇게 파일 두 개 만드는 시간은 불과 몇 초 밖에 안걸리더군요. 이제 짐을 풀어 놓아야 할 시간입니다.

3. 먼저 새로운 서버에 DB를 만듭니다.
3.1. mysql -p [사용자명] 으로 로그인 한뒤
3.2. show databaes; 날려서 뭐뭐 있나 한번 봐주고.
3.3. create database [db이름]; 이렇게 원하는 db를 만들어 줍니다.
3.4. show databases; 로 만들어졌나 확인 해보고
3.5. exit;

4. 묶어 놨던 테터를 웹 기본 폴더에 풀어 줍니다.
tar xvf [풀어 제낄 파일 이름]

5. 테터를 설치합니다.
5.1.  config.php 파일을 다른 이름으로 바꾸던지 삭제합니다. 
mv [대상 파일] [목표 파일] or rm -rf [지울 파일]
5.2. 웹에서 setup.php 에 접속합니다.
예) www.webapp2.net/tt/setup.php
5.3. 새로운 테터 설치를 진행합니다. DB는 3번에서 만들었던 DB로 설정해 줍니다.
5.4. 설치가 끝나고 Admin으로 로그인 해보면 테터가 텅텅 비어있는 새거 인 상태를 볼 수 있습니다.

6. DB에 접속해서 3번에서 만들어둔 DB를 2번에서 덤프뜬 sql로 대체 합니다.
6.1. DB에 접속
6.2. show databases; 로 만들어둔 DB가 보이나 확인.
6.3. drop database [db이름]; 으로 tt에서 사용하는 db 제거.
6.4. create database [db이름]; 다시 지웠던 db이름으로 db 생성.
6.5. exit;
6.6. 덤프파일로 복구합니다.
mysql -u [사용자아이디] -p [디비명] < 덤프파일명
예) mysql -u agilejava -p agilejava < whiteship.sql

끝났습니다.

다시 테터에 접속해 보시면 이전 서버에 있던 상태 그대로 새로운 서버에 깔린 것을 확인할 수 있습니다. 계정들도 그대로 로그인 됩니다.
신고
top







티스토리 툴바