메뉴 건너뛰기

XE Guidebook

제거하기와 Data 이전
2014.08.21 18:20

8-02 XE Core로 만든 웹사이트 통째 이전하기

조회 수 2615 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

XE 코어로 만든 웹사이트를 같은 계정 또는 다른 계정의 서버로 이전하려면 다음 2가지 방법으로 진행할 수 있다. 웹사이트를 통째로 똑같이 그대로 옮기는 방법과 다른 서버에 웹사이트를 업그레이드하여 하나 새로 만들고 기존 사이트에서 필요한 살림살이(회원정보, 쪽지, 게시판 Data)만 옮겨 가는 방법이다.
 
만약, FTP 프로그램을 이용하여 현재 계정의 루트 디렉터리 안에 있는 XE Core의 모든 파일들을 하나하나 다운로드한 다음, 이사 가고자 하는 계정의 서버에 그대로 올려 줌으로써 이전 작업을 하려고 한다면, XE Core는 정상적으로 작동하지 않을 것이다.
 
왜냐하면 호스팅을 한 계정의 루트 디렉터리에는 사용자가 사용하는 폴더와 XE Core가 필요에 의해서 만들어 놓은 files 폴더가 있는데, xe 디렉터리 안에 있는 files 폴더는 XE Core가 수시로 웹사이트의 운영내용 및 설정 파일들을 수정하고 첨부 파일들을 저장하는 곳으로, 이 files 디렉터리는 FTP를 이용하여 다운로드하거나 이동, 복사를 할 수 없으며, 또한 웹사이트 운영 시 함께 할당 받아 사용하고 있는 DB의 이전이 되지 않기 때문이다. 
 
따라서 첫번째 방법으로 현재 운영 중인 웹사이트를 같은 서버의 계정 내에서건 혹은 다른 서버의 계정이건 통째로 그대로 이전한다는 것은 XE 루트(root) 디렉터리와 DB의 백업, 이어서 계정에 그대로 복원을 한다는 의미이며, 복원이 완료된 웹사이트는 사용 중인 레이아웃이나 게시판 모듈, 또는 게시물(첨부파일) 등의 추가적인 설치와 설정 작업이 전혀 필요없이 캐시파일을 재생성하는 것만으로도 이전과 동일하게 웹사이트를 운영할 수 있게 된다.
 
 
● 같은 계정 내에서 XE 백업과 복원하기
 
웹사이트의 백업이란 루트 디렉터리(html, www, public_html 폴더) 전체를 하나의 파일로 묶는 것을 말하며, DB에 저장되어 있는 Data 또한 압축파일로 받아야 한다. 곧 계정의 백업은 xe "디렉터리의 백업"과 "DB 백업"으로 나뉘어 작업이 이루어지며, XE 코어와 DB는 "캐시파일 재생성"을 해줌으로써 상호 연동되어 진다.
 
그럼 먼저 같은 서버의 계정에 디렉터리를 백업하고 복원하는 방법에 대해서 알아보자
 

【 파일 및 디렉터리의 백업과 복원 】

▶ 계정 디렉터리 백업하기
 
계정의 백업은 FTP를 이용해서 할 수 없으며, 오직 SSH나 Putty 프로그램으로 서버에 접속하여 텔넷 명령어를 사용하여야만 가능하다.
 
☞ XE Core 압축풀기 > SSH 프로그램 명령어 참조
 
- SSH로 최상위 디렉터리(root) 밖에서 디렉터리 전체를 하나의 파일로 묶어 주는 아래의 명령어를 입력한다.
 
tar -cvfpz backuphtml.tar.gz html
 
html은 압축하고자 하는 디렉터리의 이름이며, 서버에 따라  html, www 또는 public_html 등이 사용된다.  backuphtml.tar.gz는 백업의 결과 만들어질 압축파일 이름이며 임의로 지정하면 된다.
tar의 옵션의 c는 파일 및 디렉터리를 하나로 묶어 새 저장 파일을 만들어 라는 뜻이다.
옵션 -p는 모든 퍼미션(권한) 정보를 포함하여 압축을 하도록 한다.
 
- backuphtml.tar.gz 압축파일이 루트 디렉터리 밖에 만들어 지면, FTP 프로그램을 이용하여 다운로드 한다.
 ( 같은 서버의 계정 내에서 바로 복원을 할 경우에는 다운로드하지 않아도 무방하다.)
 
▶ 계정 디렉터리 복원하기
 
- SSH로 서버에 접속하여 루트 디렉터리 밖에서 아래의 명령어를 입력한다.
 
tar -xvfpz backuphtml.tar.gz
 
옵션 x는 압축을 해제하도록 한다.
 
- 압축이 풀리게 되면 자동으로 html 디렉터리 안에 모든 파일이 복원된다.
 
- 옵션 -p로 모든 권한 정보를 포함하여 압축파일을 해제하였지만 아래와 같이 권한 설정을 다시 한 번 해준다.
 
chmod 707 xe
 
만역 xe 디렉터리 안에 있는 files 디렉터리의 권한 문제로 오류가 발생할 경우에는,
chmod -R 707 xe/files 명령어로 files 디렉터리를 포함하여 하위 폴더까지 권한을 재설정해 주도록 한다.
기타 오류에 대해서는 호스팅 웹서버의 root 권한이 필요한 경우가 있으므로, 이 때는 서비스회사와 상의한다. 
   

【 DB의 백업과 복원 】

▶ DB의 백업
 
DB의 백업은 파일을 압축하는 것이 아니라, DB에 있는 모든 내용을 텍스트로만 작성한 sql 문서를 한장 만들어 받아 두는 작업이다.
 
- DB를 백업하려면 아래와 같은 명령어를 입력한다.
 
mysqldump -u 아이디 -p DB이름 > backupdb.sql
 
dump는 출력을 의미한다(dump is a Unix program used to backup file systems.)
-p 다음에 비밀번호가 없어도 나중에 password 입력화면에서 입력하면 된다.
아이디와 DB이름은 계정 아이디와 DB의 이름을 입력한다.
데이터베이스 관리 시스템(Database Management System, DBMS)은 SQL(Structured Query Language, 구조화 질의어)이라는 언어를 쓰기 때문에 백업된 문서의 확장자가 sql이 된다.
 
- DB가 백업된 backupdb.sql 문서 안에는
XE 코어에서 사용하는 테이블의 종류와 갯수 및 내용(스키마),
누가 로그인하여 어떤 글들을 썼는지,
어떤 첨부파일이 어느 디렉터리에 보관되고 있고,
레이아웃은 어떤 것을 자주 쓰는지,
메뉴는 어떤 것들이 있는지 하는 등등의 내용들이 들어있다.
 
 
▶ DB의 복원
 
- 백업 받아 둔 sql 문서를 복원하려면 아래와 같이 입력한다.
 
mysql -u 아이디 -p DB이름 < backupdb.sql
 
화살표(<)가 mysql 쪽 방향으로 가게 한다.
 
 
▶ 캐시파일 재생성 하기
 
- 계정 디렉터리와 DB 복원을 마친 후에는 반드시 XE 관리자로 로그인 한 후, 캐시파일을 재생성해 주어야 한다.
 
만약 관리자로 로그인이 되지 않고 웹사이트가 백지 상태로 표시 된다면,
xe/files/cache 디렉터리를 삭제(rm -rf cache)한 후에 아래와 같이 관리자 주소를 입력하고 관리자로 로그인한다.
ㆍhttp://웹사이트 주소/xe/?module=admin
ㆍhttp://웹사이트 주소/xe/?module=admin&act=dispAdminConfig
관리자 로그인하고 캐시파일을 다시 재생성하게 되면 XE 코어가 정상적으로 작동하게 된다.
 
※ 텔넷 명령어 rm -rf cache 로도 xe/files/cache 디렉터리가 삭제되지 않으면 nobody 권한문제 때문이므로,
   호스팅 회사에 문의하여 삭제를 요청하도록 한다.
   간혹 php 문서를 활용한 권한수정도 되지 않는 경우가 있는데,
   이런 경우에는 SuperUser 권한으로 nobody권한을 다시 조정해 줘야 한다.
 

● 다른 서버의 계정으로 통째 이전하기

현재 운영 중인 웹사이트를 다른 서버의 계정으로 통째로 옮기고 싶을 때에도, XE 백업 받기와 복원하는 절차는 같은 서버 내에서 이전하는 경우와 기본적으로 방법이 동일하다. 다만, 새로운 서버의 환경 설정값들이 변경되었기 때문에 다음과 같이 이에 따른 수정사항만 조정해 주면 된다.
 
▶ 새로운 서버의 루트 디렉터리로 복원한 파일들의 이동
 
우선 계정에 html 디렉터리가 없으면, FTP로 업로드한 압축파일을 해제 하였을 때 html 디렉터리가 자동으로 만들어지고 그 안에 모든 파일과 폴더가 풀어지게 된다. 따라서 풀려진 html 디렉터리 안의 모든 내용들을 새로운 서버 환경의 루트(root) 디렉터리 안으로 옮겨 주어야만 한다.
 
- 아래와 같이 명령어를 입력한다.
 
mv html/* public_html
 
html 안의 모든(*) 파일과 폴더를 public_html 디렉터리 안으로 이동하라!(mv)
 
※ 숨김파일 이동하기
 
명령어 mv에서 와일드카드(*)를 사용하면 도트(.)로 시작되는 "숨김파일"을 이동하지 못하게 된다.
숨김파일은 ls -a 옵션을 사용하여 확인할 수 있다.
 
- [mv 디렉터리/* 이동할 디렉터리]와 [mv 디렉터리/.htaccess 이동할 디렉터리] 2번에 나누어 실행하거나,
아래 예)와 같이 [mv 디렉터리/{*,.htaccess} 이동할 디렉터리/]와 같이 여러 대상을 포함시켜 이동하면 된다.
예) mv html/{*,.htaccess} public_html/
또는, mv html/{*,.*} public_html/ 도 같은 역할을 하지만 서버환경 옵션설정에 따라 허용되지 않을 수 있다.
 
- shopt -s dotglob 명령어를 우선 실행한 후 mv 명령어에 "*"를 사용하면, 숨김파일까지 한꺼번에 이동된다.
 
shopt -s dotglob
mv html/* public_html/
 
- 숨김 파일의 이동 완료 후에는 FTP를 이용하여 xe 디렉터리 안에 .htaccess 파일이 제대로 있는지 확인해보고,
  chmod 707 xe 명령을 이용하여 권한설정을 해 준다.
 
 
▶ 도메인 네임서버 변경
 
웹사이트의 이사를 무사히 마친 후에는 이전의 서버에서 사용하던 XE Core는 더 이상 필요하지 않으므로 삭제하고, 도메인의 네임서버 설정을 변경하여 새로운 서버의 계정으로 연결시켜 주어야 한다.
 
 
▶ xe/files/cache 디렉터리의 삭제
 
새로운 서버의 계정에서 XE Core가 이전의 서버에서 사용했던 xe/files/cache 디렉터리는 더 이상 필요치 않게 된다. 새로운 설정값을 다시 만들어야 하기 때문에 아래의 명령어로 cache 디렉터리를 삭제한다.
 
rm -rf cache
 
만약 /xe/files/cache 디렉터리가 위 명령어로도 삭제되지 않을 때는 호스팅 회사에 삭제를 요청한다.
 
 
▶ db.config.php 파일 수정
 
새로운 서버의 아이디와 DB이름으로 DB를 복원하였기 때문에, db.config.php 파일을 내려 받아 그 안에 적혀 있는 이전 서버의 내용을 수정 변경해 주어야 한다.
 
- FTP를 이용하여 /xe/files/config/db.config.php 파일을 서버에서 내려 받는다.
 
<?php if(!defined("__ZBXE__")) exit();
$db_info->master_db = array('db_type' => 'mysql','db_port' => '3306','db_hostname' => 'localhost','db_userid' => 'DB아이디','db_password' => 'DB비밀번호','db_database' => 'DB이름','db_table_prefix' => 'xe_');
$db_info->slave_db = array(array('db_type' => 'mysql','db_port' => '3306','db_hostname' => 'localhost','db_userid' => 'DB아이디','db_password' => 'DB비밀번호','db_database' => 'DB이름','db_table_prefix' => 'xe_'));
$db_info->default_url = 'http://홈페이지 URL/xe/';
$db_info->lang_type = 'ko';
$db_info->use_rewrite = 'Y';
$db_info->time_zone = '+0900';
?>
 
- 위 내려 받은 파일 내용 중에서 새로운 서버의 아이디와 비밀번호, DB네임, 사이트 주소를 수정한다.
ㆍ'db_hostname' => 'localhost'
ㆍ'db_userid' => 'DB아이디'
ㆍ'db_password' => 'DB비밀번호'
ㆍ'db_database' => 'DB이름'
- 수정된 db.config.php 파일을 업로드하여 원본 파일을 덮어씌운다.
- 반드시 캐시파일을 재생성하여 변경된 서버 계정의 환경 설정값들을 새로운 캐시파일로 생성하도록 하고,
   XE Core와 DB가 서로 연동되게 한다.
 
※ 만약 위 내용처럼 db.config.php 파일을 수정하여 업로드하였는데도 문제가 발생하였을 때는,
   설정 중에 localhost 등과 같이 기타 서버에서 사용하는 설정 방법을 호스팅사에 문의하여 수정해야 한다.
 

● 다른 서버로 웹사이트의 이전 시 유의사항

현재 운영 중인 웹사이트를 다른 서버의 계정으로 이전하는 작업은 결코 만만한 작업이 아니다. 단순히 XE Core의 백업과 복원하는 실무 작업은 누구나 조금만 신경을 쓰면 어렵지 않게 해낼 수 있을 것이다.
 
하지만 이전 서버에서 디렉터리를 압축할 때 권한 설정값이 새 서버에서 제대로 적용되지 않는 등, 문제는 새로운 서버의 운영과 환경 설정에서 대개 비롯되므로, 문제 발생시는 지체없이 호스팅 회사에 도움을 요청하여야 한다.
 
그리고 자신감과 용기만 믿고 무작정 XE를 백업 받아 새로운 서버로 이사를 결행하기보다는 호스팅 회사에 백업 받은 XE Core를 복원할 수 있는지에 대한 여부와 환경 설정에 대한 자문을 미리 구한 후에 실행하도록 하자.
 
일반적으로 호스팅 회사는 백업파일이 있는 경우, 무료로 압축파일을 해제하여 복원시켜 주는 서비스를 제공하고 있기 때문에 특별한 경우가 아니라면 전문가에게 의뢰하는 것이 바람직하다. 
 
 


List of Articles
번호 분류 제목 글쓴이 조회 수
3 제거하기와 Data 이전 8-01 XE Core 제거와 DB 삭제하기 file XE4Uself 852
» 제거하기와 Data 이전 8-02 XE Core로 만든 웹사이트 통째 이전하기 XE4Uself 2615
1 제거하기와 Data 이전 8-03 XE 데이터 이전하기 file XE4Uself 1044
Board Pagination Prev 1 Next
/ 1