공부/XE

17. XE 코어 삭제하기

미친사람 2020. 2. 23. 14:16
반응형

 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가 말끔하게 지워 줄 수 있기 때문입니다.


해당 이미지는 제 서버환경과 다르지만 이해는 동일하니 이용하겠습니다.


SSH로 서버 계정에 접속하면 지난번과 동일하게 xe 디렉터리가 보이는 루트(root) 디렉터리로 이동을 합니다.

디렉터리 목록보기(ls), 디렉터리 이동하기(cd 경로)는 잊지 않으셨죠?


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

이 명령을 내리면 다시 돌이킬 수 없습니다.


 rm -rf xe 

rm = 파일 또는 폴더를 지워 줘

-r = 무엇이 있든지 지워줘

-f = 묻지도 따지지도 말고 보여줄것도 없이 지워줘



삭제는 순간적으로 완료되었습니다. 워낙 강력해서 아묻따 하고 xe 디렉터리를 삭제합니다.

xe 디렉터리가 잘 삭제 되었는지 SSH에서 확인 한 후 종료합니다.

TIP

위와 같은 삭제 명령어를 사용하기 위해서는 반드시 주의가 필요합니다.

위 내용에서 삭제된 폴더는 XE 코어 설치시 담고 있는 실행 파일과 폴더 전체를 일괄 삭제하는 내용입니다.

만약 자신의 서버 계정에 코어와는 별도로 업로드한 파일과 폴더가 무수히 많다면 삭제 폴더의 선택은 매우 신중하게 결정해야 합니다.




※ 이 부분은 저도 잘 모르는 부분인데, 저는 해당하는 사항이 아닌거같아서 그냥 복사해서 붙여놓습니다.

저는 rm -rf 명령어로 경로를 지정해주면 files 디렉터리도 지워지고 nobody 권한도 없는거같긴한데.. 잘 모르겠네요, 서버호스팅이라서 그런지..


  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 디렉터리가 삭제되는 일이 없도록 해야하기 때문입니다!!!



를 복붙해놓고 다운로드 파일을 열어서 보니 퍼미션 권한을 줘놓고 지운거였네요.

저는 files 폴더까지 퍼미션을 줘놨기때문에 지워진건가봅니다.




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


호스팅 계정을 이용하게 되면 호스팅 회사의 홈페이지에서 자신의 계정 설치 및 운영 정보를 자세히 확인할 수 있습니다.

또한 DB 관리를 위해 phpMyAdmin 프로그램 (DB관리 프로그램)을 제공하는데 "MySQL 웹어드민" 또는 "웹 DB 관리접속"등의 이름으로 접속 방법을 자세히 안내하기도 합니다.



위에서 xe 디렉터리는 삭제가 되었지만 코어가 DB에 설치한 테이블(TABLE)은 아직 삭제가 되지 않았습니다.

DB 삭제를 위해서 여러분의 호스팅 계정 정보를 확인하고 DB에 접속합니다. 호스팅 계정 신청시 제공된 DB 접속용 아이디와 비밀번호를 이용해야 합니다.

DB 접속용 아이디와 비밀번호는 계정에서 사용하는 (FTP 접속용) 아이디, 비밀번호와 다를 수 있습니다.



DB 테이블의 이름을 살펴보면 XE 코어가 설치한 테이블은 모두 친절하게 xe_ 머리말이 붙어 있습니다.

"이건 내가 만든 테이블이다, 절대 건들지마라!" 라는 뜻이기도 합니다.

만약 코어 설치시 테이블의 머리말을 home 으로 입력한 경우 접두어는 자동으로 home_이 붙게 됩니다.

같은 계정에 코어를 다중으로 설치하는 경우 코어는 DB 테이블의 머리말을 기준으로 각각 구분하여 사용하기 때문에 별개로 동작할 수 있는 것 입니다.



XE 코어만 설치하고 사용하였다면 현재 DB에서 다른 테이블은 없을 것 입니다. 테이블 하단에 있는 [모두 체크]를 클릭합니다.

만약 여러분이 만든 별도의 테이블이 있다면 해당하는 테이블 이름 앞에 체크표시를 해제하시면 선택에서 제외하실 수 있습니다.



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



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



[선택한 것을] 삭제하면 선택했던 테이블은 모두 삭제 됩니다.

DB에 남은 테이블이 하나도 없기 때문에 XE 코어를 재 설치하는 경우 깨끗하게 제거된 상태에서 새로운 마음으로 작업을 다시 할 수 있습니다!

반응형