XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠
제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 | Gekkou |
---|---|
출처URL | http://www.xpressengine.com/tip/18669896 |
I. 서버이전 준비
1. 파일질라 FTP클라이언트 프로그램을 준비하세요.
FTP클라이언트가 필요합니다. 알FTP는 사용하지 마시고 반드시
파일질라(무료) 와 같은 다른 전용 프로그램을 이용하십시오.
2. Putty 와 같은 SSH 프로그램을 준비하세요.
DB와 계정의 파일들을 백업하기 위해서 반드시 필요한 프로그램입니다.
코덱스(codex.kr) 과 같이 일부 전용 cPanel 을 제공하는 호스팅업체라면 SSH프로그램이 필요하지 않을수 있습니다.
또한, SSH를 지원하지 않는 호스팅이용자분들은 서버관리자에게 계정 백업을 요구하셔야 합니다.
FTP프로그램으로 XE를 직접 내려받는 식으로 백업을 해 두시면
첨부파일과 이미지파일들이 모두 깨지는 문제가 발생합니다. (첨부파일 암호화 / 파일명 UTF-8 때문)
3. 새로 이전하려는 호스팅업체의 서버 환경을 확인하세요.
PHP 4.x ~ 5.x (단 PHP 5.2.2 버전에서는 사용할 수 없음), XML 라이브러리, GD 라이브러리가 사용가능한지 확인하시고,
MySQL 의 버전이 4.1 이상인지 확인하세요.
II. 주의사항 (필독)
1. FTP 를 이용할 때에는, 알FTP 는 절대 사용하지 마세요. [필수]
FTP 로 파일을 전송하다 보면, 서버환경에 따라 파일이 누락되는 경우가 있습니다.
이는 상당히 빈번히 일어나는 일로, 누락된 파일만 다시 재업로드 할수 있는 FTP 툴이 필요합니다.
알FTP 는 이러한 부분에서 상당히 취약합니다. 전송에 실패한 파일을 재전송할 수 있는 기능이 없습니다.
따라서, 해당 기능이 있는 Filezilla (무료) 등과 같은 다른 FTP 클라이언트를 이용하셔야 합니다.
2. 서버 이전 이후에는 캐쉬폴더를 삭제해 주어야 합니다.
서버 이전 직후에 레이아웃이 일그러지거나 관리자모드에 로그인이 되지 않는 등의 문제가 발생할 수 있습니다.
이는 이전 서버의 환경에서 생성된 cache 폴더와 파일들이 일으키는 문제가 대부분이어서
cache 폴더를 삭제 해주면 해결될 수 있는 문제입니다.
3. 계정 파일들의 백업은 FTP 로 직접 다운받는 방식으로는 하면 안됩니다.
첨부파일 중, 이미지 파일 말고, 압축파일인 경우에는
우선 DB 상으로는 XE_files 에 저장됩니다.
그러나 실제적인 파일의 업로드는 암호화되어 XE폴더 -> files -> attach -> binaries 폴더 안에 저장됩니다.
폴더번호는 일련의 규칙에 따라 생성되어 저장되게 됩니다.
그런데, 이 폴더의 파일들을 백업하여 복원할 때 문제가 발생합니다.
XE를 계정이전하거나 백업후 복원할 때,
리눅스명령어 (tar cvf / tar xvf ) 를 사용하지 않고
FTP 로 직접 파일들을 다운받아 백업하고, FTP 업로드를 통해 업로드를 하는 경우
암호화되어 저장된 파일의 속성이 변경되어 버리는 문제가 있습니다.
.exe 등과 같은 일반 파일들의 경우 큰 문제가 없는것 같으나,
.zip, .rar, .alz, .tar 등 모든 압축파일은 문제가 생깁니다.
따라서, 만일 SSH가 지원되지 않는 계정을 이용중이시라면
반드시 서버관리자 / 호스팅업체에 데이터백업 을 해 줄 것을 요청하셔야 합니다.
4. files 폴더만 백업해서 옮기면 된다는데요?
그래도 되긴 합니다. 그러나 이렇게 하면 만들어두었던 레이아웃, 위젯스킨들이 모두 적용되지 않습니다.
망가지는 것은 아닌데, 제대로 적용되게 해서 완전히 똑같이 옮기려면
레이아웃폴더, 모듈폴더, 애드온폴더, 위젯폴더, 위젯스타일 폴더 등을 같이 옮기셔야 합니다.
결국 xe 를 통채로 백업하는 것이 더 간편하고 쉽습니다.
III. 서버인전 시작하기
1. 외부에서 이전하려는 홈페이지로 접속하지 못하도록 임시 페이지를 만드세요. [필수]
|
2. 기존에 사용하던 호스팅업체의 SSH 로 로그인을 하세요.
3. ls 라고 입력하여 자기가 사용하는 호스팅업체의 루트 폴더 이름을 확인하세요.
- html, www, public_html 등의 폴더가 이에 해당합니다.
4. 계정의 파일들을 백업할 것입니다. 압축명령어를 실행해 주세요.
tar cvfpz backup.tar.gz html
이라고 입력하였는데,
tar cvfpz : cvfpz 라는 추가명령어를 포함하여, 압축하라
backup.tar.gz : backup 이란 파일명으로 tar.gz 라는 압축파일을 만들어라.
html : 백업하려는 폴더 이름은 html 이다.
라는 뜻입니다.
따라서, 위와 이 글을 읽으시는 분들은 본인의 계정환경에 맞게, tar cvfpz 이후의 명령어는 바꿔 입력하시면 됩니다.
5. DB를 백업할 것입니다. DB백업 명령어를 실행해 주세요.
mysqldump -u ID -p DBname > backup.sql
이라고 입력하였는데,
mysqldump : mysql DB를 백업할 것이다.
-u ID : user는 ID 이고,
-p : 비밀번호는 조금있다가 입력할 것이다. (저 명령어를 넣은 후 엔터 치면, Enter Password 라고 비밀번호 입력칸이 나옵니다)
DBname : 본인의 DB명을 입력하시면 됩니다.
> backup.sql : 그 DB명에 있는 테이블들을 backup.sql 파일로 저장할 것이다.
라는 뜻입니다.
DB백업 방법은 이 외에도 phpmyadmin 에서 하는 방법이 있습니다.
이 방법은 검색하시면 쉽게 아실 수 있습니다.
6. 이제 FTP 로 계정에 접속해 보세요.
위 3번, 4번 과정에서 만든 backup.tar.gz 파일과 backup.sql 파일이 있을 겁니다.
이 두 파일을 컴퓨터로 내려받으세요.
이 파일들을 새 계정으로 옮길 것입니다.
7. 옮기려는 새 계정의 FTP로 접속하세요.
그리고 컴퓨터로 내려받을 위의 두 파일을 업로드 하세요.
업로드 할 때에는, FTP 접속 후에 나오는 폴더에 바로 하시는 것 보다,
public_html 혹은 www 혹은 html 등의 root 폴더 안에 하시는 것이 좋습니다.
8번부터 이어지는 설명은 root 폴더 안에 넣었다고 가정하고 진행하겠습니다.
8. 새로 옮길 계정의 SSH 로 로그인 하세요.
9. ls 라고 입력하여, root 폴더를 확인하세요.
10. 복원하려는 두 파일 (backup.tar.gz / backup.sql) 이 있는 root 폴더로 이동하세요.
이동하는 방법은, cd public_html 을 입력하고 엔터를 치면 됩니다.
public_html 대신, 본인의 root 폴더를 입력하면 되겠죠.
11. ls 를 입력하여 복원하려는 두 파일(backup.tar.gz / backup.sql)이 존재하는지 확인해 보세요.
12. 이제 계정의 파일들의 압축을 해제할 겁니다. 압축해제 명령어를 입력하세요.
tar xvfpz backup.tar.gz
라고 입력했는데,
tar xvfpz : vfpz 라는 추가 명령어를 포함하여 압축을 해제할 것이다.
backup.tar.gz : 압축해제 대상은 backup.tar.gz 파일이다.
라는 뜻입니다.
따라서, 본인이 압축했던 파일 명을 tar xvfpz 뒤에 입력하면 됩니다.
13. 이제 DB를 복원할 것입니다. DB복원 명령어를 입력하세요.
mysql -u ID -p DBname < backup.sql
이라고 입력하였는데,
mysql : mysql서버를 불러올 것이다.
-u ID : user는 ID 이고,
-p : 비밀번호는 나중에 입력할 것이다.
DBname < backup.sql : backup.sql 파일에 있는 내용들을 DBname 이라는 DB명에 넣을 것이다.
라는 뜻입니다.
주의할 점은, 백업할때 사용하였던 mysqldump 와 명령어가 다릅니다. mysqldump 가 아닌 mysql 입니다.
또한 여기서 입력하는 ID, 비밀번호, DBname 등은 이전에 사용하던 계정의 정보가 아니라
새 계정의 정보에 맞게 입력하셔야 합니다.
14. FTP로 접속하여 파일과 폴더들을 옮겨주셔야 합니다.
지금까지의 과정을 이행하셨다면, FTP 로 새 계정에 접속 했을 때
root 폴더 (저같은 경우, public_html)가 나오고 그 폴더로 들어가면
이전에 사용하던 루트폴더(저의 경우, html)가 또 있을 겁니다.
그리고 그 폴더 안으로 들어가야 비로소 이전 계정에 있던 폴더들이 보일 겁니다.
새 계정 FTP접속 > 루트폴더 > 이전에 사용하던 계정의 루트폴더 > 폴더와 파일들
이렇게 있는 셈인데,
폴더와 파일들을 루트폴더 바로 밑으로 옮겨야 합니다.
옮기는 방법은
이전에 사용하던 계정의 루트폴더 로 이동한 후,
그 안에 있는 폴더와 파일들을 모두 선택하세요.
그 후, 그 상위폴더로 드래그 앤 드롭 하시면 됩니다.
(주의) 옮기기 이전에 숨김파일을 강제표시 하게 한 후 하셔야 합니다!!
15. 새로 이사한 계정으로 옮긴 XE > files 폴더 안에 있는 cache 폴더를 삭제해야 합니다.
FTP나 SSH로 접속하여 xe 폴더 > files 폴더 안에 있는 cache 폴더를 통채로 삭제해 주십시오.
SSH 에서 cache 폴더를 삭제하는 방법은,
cd 명령어로 files 폴더 까지 이동한 후 rm -rf cache 라고 입력하면 됩니다.
순서대로 따라하셨다면 권한 문제가 발생할 일은 없지만,
만일 권한문제로 인해 삭제가 되지 않는다면
http://www.xpressengine.com/18445192문서의 5번 문항을 참고하여 cache 폴더를 삭제해 주세요.
16. xe폴더 > files > config 폴더 안에 있는 db.config.php 파일을 수정해야 합니다.
FTP로 접속하여 db.config.php 파일을 컴퓨터로 내려받으세요.
메모장이나 editplus 등으로 여신 후,
$db_info->db_hostname = 'localhost';
$db_info->db_userid = 'OOOOOOO';
$db_info->db_password = 'OOOOOOOO';
$db_info->db_database = 'OOOOOOOOO';
부분을 새 계정의 정보에 맞게 입력하세요.
hostname 의 경우 대부분이 localhost 를 사용하지만,
일부 호스팅에서는 다른 값을 요구할 수도 있으니
해당 서버환경에 맞게 입력하세요.
수정이 끝나셨으면 저장하시고 xe > files > config 폴더에 업로드 하여 덮어 씌우세요.
만일 권한문제로 업로드가 되지 않는다면
http://www.xpressengine.com/18308524 문서의 12번 항목을 참고하여 권한을 변경해주시면 됩니다.
절대로 db.config.php 파일을 삭제하지는 마십시오.
17. 이제 웹사이트로 로그인을 해 볼 것입니다.
인터넷 주소창에 http://도메인/xe/?module=admin 을 입력하여 관리자 모드로 접속하세요.
18. 캐쉬파일 재생성을 눌러주세요.
19. 관리자모드 > settings 로 들어가 FTP정보를 삭제하신 후 다시 입력해 주세요.
20. 1번과정에서 만들었던 임시 페이지를 삭제해 주세요.
-----------------------------------------------------
아카스 님 댓글Tip 추가
ftp로 내려받고 다시 올리기 구찮을 경우가 있죠.
그럴경우 기존서버에 sql파일과 xe압축파일 tar.gz파일을 웹 접근이 가능한 폴더에 집어넣구...(mc를 이용하면 무자게 편하지요잉) .
그다음 옮길서버에서 putty로 ssh접속후 wget http://이전서버도메인/머시기저시기.sql , wget http://이전서버도메인/머시기저시기.tag.gz등으로 직접 다운 받으면.. 받고 올리는 시간을 줄일수 있습니다...