적용버전 : XpressEngine 공통 DB 테이블을 포함하여 XE 코어 삭제하기

XE 코어 삭제하기

XE 코어 재설치를 위해 DB까지 깨끗하게 삭제하기

XE 코어를 설치하고 홈페이지 만들기를 공부하다 보면 가끔 처음부터 다시 시작해 보고 싶은 경우가 있습니다. 이런 경우 FTP로 접속해서 xe 디렉터리를 삭제한다고 해도 XE 코어 프로그램이 설치한 DB(데이터베이스)까지는 삭제되지 않습니다. 이번 과정에서는 SSH를 이용해 서버 계정에 접속하고 XE 파일과 디렉터리를 일괄 삭제하는 방법과 MySQL 웹어드민으로 DB에 접속하여 XE 코어가 설치하고 운영했던 DB 테이블까지 모두 삭제하는 방법에 대해 알아봅니다.


파일과 폴더 삭제하기

코어 파일 삭제를 위해 SSH를 실행하고 서버 계정에 접속합니다. "SSH로 압축풀기"에서 배웠던 내용과 방법이 비슷하기 때문에 그리 어렵지 않습니다. FTP를 이용해서 xe 디렉터리를 삭제하지 않는 것은 삭제 시간이 한참 걸리기도 하지만 nobody 권한으로 인해서 xe 디렉터리 안에 있는 files 디렉터리가 삭제되지 않는 경우가 발생하기 때문입니다.

nobody 권한이란, 어떤 폴더의 주인이 nobody란 사람(?)의 것이라고 생각하시면 이해하기 쉽습니다.
"아니 내 서버 계정에 내가 주인이 아닌 폴더가 있나요?"
예, 대표적으로 xe 디렉터리 안에 xe가 필요해서 만들어 놓은 files 폴더가 있습니다. 이것은 분명 여러분이 만든 폴더가 아니고 xe가 운영하면서 메모를 한다거나 캐시파일을 만들어 보관 한다거나, 글의 위치와 첨부파일을 저장해 놓는다거나 할 때 사용하기 위해서 모든 설정파일이 들어있는 아주 중요한 디렉터리입니다. 그런데 nobody라고 해서 아무도 주인이 아니라는 뜻은 아닙니다. 리눅스 서버에서는 각각의 기능과 역할에 따라 여러 사용자가 공존하는 시스템으로 여러분이 알지 못하는 몇몇 사람들이 함께 운영하고 있습니다. 예를 들어서 메일을 보내는 sendmail 기능은 root와 mail 이라는 관리자가, DNS 서버는 named 라는 관리자가, httpd 는 nobody 라는 관리자가, 그리고 계정에 프로그램을 설치하고 운영하는 것은 사용자, 즉 여러분이 관리자가 됩니다.

nobody는 분명히 어떤 권한이 있는 관리자는 관리자인데 사람이 아닌 프로그램(php)이 임의로 설정하고 운영하기 때문에 편의상 nobody라는 이름으로 권한을 행사하는 것 뿐입니다. 여러분의 컴퓨터에도 분명히 이런 사람이 있습니다. 어디 있냐구요? 여러분이 사용하는 컴퓨터의 제어판을 열고 사용자 계정을 열어 보세요. 그러면 그곳에 컴퓨터 관리자로 자신의 이름이 있고 그 옆에 Guest(손님) 계정이라고 있지요? 계정 사용 안 함이라고 되어 있지만 분명 손님이 있긴 있잖아요. 이것이 바로 nobody와 같은 의미입니다. 여러분의 컴퓨터를 여러 사람이 같이 사용해야 하는 경우 사용자 계정에 각각의 사람을 등록하고 폴더의 사용 권한을 조정해 준다면 컴퓨터의 주인이 아닌 이상 다른 사람의 파일을 수정하거나 삭제하는 것은 불가능합니다.

서버에서 가장 강력한 권한을 행사하는 사람은 root 권한입니다. root 권한은 호스팅 회사가 가지고 있습니다. 회사의 서버 관리 직원이 리눅스를 설치했으니까요? 그러니 지워지지 않는 파일이나 폴더는 호스팅 회사에 전화 한통이면 싹 지워줍니다. 여러분은 모두 Guest(손님)로 이용하고 있을 뿐입니다. 하지만 매번 회사로 전화를 걸어 지워달라고 할 필요는 없습니다. 간단한 php 문서를 만들어 nobody 처럼(php 프로그램이 만들었으니 프로그램이 지우는 것처럼) 서버를 살짝 속여서 지우는 방법도 있고 우리에게 있는 강력한 SSH가 말끔하게 지워줄 수 있기 때문입니다.

image

SSH로 서버 계정에 접속하면 지난번과 동일하게 xe 디렉터리가 보이는 루트(root) 디렉터리로 이동을 합니다. 디렉터리 목록보기(ls), 디렉터리 이동하기(cd www 또는 cd html 또는 cd public_html), 다시 목록보기(ls) 잊지 않으셨겠죠?

우리가 삭제해야 할 xe 디렉터리가 보입니다. 이곳에서 SSH 프로그램에다가 아주 강력한 명령을 내립니다. 이 명령을 내리면 다시 돌이킬 수 없습니다.

rm -rf xe

rm - 파일 또는 폴더를 삭제해줘! 그런데 xe 디렉터리 안에 뭐가 있든지(-r) 그냥 묻지도 따지지도 말고 보여줄것도 없이(-f)
싹~다~지워줘~ 서버군! 절대 잊지마! xe 폴더 전체를 지워야해! 이건 명령이야!

image

삭제는 순간적으로 완료 되었습니다. 워낙 강력해서 묻지도 따지지도 않고 xe 디렉터리를 삭제합니다. xe 디렉터리가 잘 삭제 되었는지 다시한번 확인 후에 SSH를 종료합니다.

TIP - 위와 같은 삭제 명령어를 사용하기 위해서는 반드시 주의가 필요합니다. 위 내용에서 삭제된 폴더는 XE 코어 설치시 담고 있는 실행파일과 폴더 전체를 일괄 삭제하는 내용입니다. 만약 자신의 서버 계정에 코어와는 별도로 업로드한 파일과 폴더가 무수히 많다면 삭제 폴더의 선택은 매우 신중하게 결정해야 합니다. XE 코어를 루트에 설치한 경우 모든 파일과 폴더를 삭제하는 명령어는....      노코멘트 하겠습니다...^^


files 디렉터리 삭제하기

위 삭제 명령어를 실행하였을 때 xe 디렉터리 안에 있는, XE 코어가 만들고 운영했던 files 디렉터리가 삭제되지 않는 경우 아래 PHP 파일을 다운로드 받아 웹브라우저에서 URL로 호출하면 권한 문제로 삭제되는 않은 files 디렉터리를 삭제할 수 있습니다. 위 삭제 명령어로 files 디렉터리까지 삭제 되었다면 이 부분은 생략합니다.

위 PHP 파일을 서버 계정의 XE 코어를 설치했던 xe 디렉터리 안에 업로드 합니다. xe 디렉터리 안에는 삭제 되지 않는 files 디렉터리가 있습니다. files 디렉터리와 같은 위치에 업로드 해야 합니다. (xe는 코어 설치시 디렉터리입니다.)

웹브라우저를 열고 URL 주소 입력란에 자신의 홈페이지 주소와 함께 delete_xe_files.php 파일을 직접 호출합니다.

예) http://URL/xe/delete_xe_files.php

만약 위 삭제 명령어와 PHP 파일로도 삭제 되지 않으면 호스팅 서비스 회사에 직접 요청해야 합니다.

TIP - files 디렉터리가 삭제되면 반드시 서버 계정에서 delete_xe_files.php 파일을 삭제해야 합니다. 실수로 재실행하거나 또는 외부에서 호출하여 files 디렉터리가 삭제되는 일이 없도록 해야하기 때문입니다!!!


MySQL 웹어드민으로 DB 삭제하기

호스팅 계정을 이용하게 되면 호스팅 회사의 홈페이지에서 자신의 계정 설치 및 운영 정보를 자세히 확인할 수 있습니다. 또한 DB 관리를 위해 phpMyAdmin 프로그램(DB 관리 프로그램)을 제공하는데 "MySQL 웹어드민" 또는 "웹 DB 관리접속" 등의 이름으로 접속방법을 자세히 안내하기도 합니다.

image

위에서 xe 디렉터리는 삭제가 되었지만 코어가 DB에 설치한 테이블(TABLE)은 아직 삭제가 되지 않았습니다. DB 삭제를 위해서 여러분의 호스팅 계정 정보를 확인하고 DB에 접속합니다. 호스팅 계정 신청시 제공된 DB 접속용 아이디와 비밀번호를 이용해야 합니다. DB 접속용 아이디와 비밀번호는 계정에서 사용하는(FTP 접속용) 아이디, 비밀번호와 다를 수 있습니다.


image

DB 테이블의 이름을 살펴보면 XE 코어가 설치한 테이블은 모두 친절하게 xe_ 머리말(접두어)이 붙어 있습니다. "이건 내가 만든 테이블이다! 절대 건들지마!"라는 뜻이기도 합니다. 만약 코어 설치시 테이블의 머리말을 home으로 입력한 경우 접두어는 자동으로 home_ 이 붙게 됩니다. 같은 계정에 코어를 다중으로 설치하는 경우 코어는 DB 테이블의 머리말을 기준으로 각각 구분하여 사용하기 때문에 별개로 동작할 수 있는 것입니다.


image

XE 코어만 설치하고 사용하였다면 현재 DB에서 다른 테이블은 없을 것입니다. 테이블 하단에 있는 테이블 [모두 체크]를 클릭합니다. 만약 여러분이 만든 별도의 테이블이 있다면 해당하는 테이블 이름 앞에 체크 표시를 해제하면 선택을 제외시킬 수 있습니다.


image

단일 선택(select) 상자를 열고 삭제를 클릭합니다.


image

실행 여부를 확인하는 질문에 [예]를 클릭합니다.


image

image

[선택한 것을] 삭제하면 선택했던 테이블은 모두 삭제 됩니다. DB에 남은 테이블이 하나도 없기 때문에 XE 코어를 재설치하는 경우 깨끗하게 제거된 상태에서 새로운 마음으로 설치 작업을 다시 시작할 수 있습니다.