워드프레스 되살리기 비하인드

[원글 : 2024 / 02 / 20]
2022년 연말에 이 공간을 잠시 끄적거렸다가 1년 넘게 방치하고 다시 시작하기로 마음 먹었을 때, 과연 아무런 문제없이 잘 진행되었을까요? 당.연.히. 아니었습니다.


사실, 글을 쓰고 있지 않을 때에는 3개월에 한번씩 접속을 했으므로 관리에 크게 문제가 없었는데 정작 새롭게 살려보겠다고 졸린 와중에 user 쪽도 손보고 category도 손보고 하다가 워드프레스 내 패스워드를 분실했습니다.

블로그 패스워드 잃어버리는 것 쯤은 워드프레스 쪽에서도 대비하고 있는 일. 재설정을 눌렀더니 메일을 확인하라고 하네요. 그런데 메일이 안 옵니다. 아마도 저렴한 웹호스팅 환경상 메일보내기 같은 명령은 안 먹는 게 아닐까 싶네요.

메일로 재설정을 할 수 없다니 살짝 당황했지만, 내가 돈 내서 빌린 호스팅이니 수동으로 바꿀 수 있지 않을까 하고 검색해보니 다행히도 방법이 있습니다.

Reset WordPress Password: 3 Ways To Do It Manually

쉽게 말해서 DB 직접 들어가서 users 테이블 들어가서 고치면 되는데, 암호화를 고려해서 user_pass를 MD5 형태로 저장하면 되는 거였습니다.

별거 아니구나..했는데 ‘DB 패스워드가 뭐였지?’하며 아차 싶었습니다. 이건 정말로 1년 넘게 안 건드린 건데- 당시에 나름대로 복잡하게 만들어뒀던 터라 기억이 안 납니다.

이게 알아내야 하는 게 DB 패스워드로 바뀌었는데 호스팅을 받고 있으니 설정에서 패스워드를 바꾸면 되는 간단한 문제인데.. 결과적으로, 저는 제 호스팅이 들어있는 CAFE24 계정의 비밀번호도 모르고 (메인 CAFE24 계정으로 접속해서 서브아이디로 바꿔서 작업했기 때문에 접속해본 적이 없는데, 무려 2018년에 만든 계정이더군요. 5년 반동안 안 쓴 거죠.) 제 호스팅 서비스의 SSH/FTP 비밀번호도 모른다는 것이 밝혀졌고- 결국 밤중에 관리자 개인정보를 바탕으로 핸드폰 문자 인증해가며 하나씩 바꿔서 해결해야 했습니다.

모든 것을 다 아는 상황에서는 매우 쉽게 해결할 수 있습니다.
DB명/패스워드는 워드프레스 설치 때 입력하게 되어 있고 wp-config.php에 기록되어 있습니다. 기록될 수밖에 없는 게.. DB접속을 해야 서비스가 돌아가는데 그 정보를 SQL에 적을 수는 없으니 로컬 파일에 기록해야죠.
DB에 접속할 수 있다면 사용자 계정 정보는 phpMyAdmin으로 고칠 수 있습니다. 저는 phpMyAdmin이 익숙하지만- 뭐가 되었든 인터넷에서 쓸 수 있는 SQL관리도구가 있으면, 아니면 직접 SQL쿼리 치는 방법으로 해결됩니다.


워드프레스는 전세계에서 가장 많이 쓰는 사이트 제작도구입니다. 그렇다 보니 늘 해킹을 걱정하게 되는데- 위에서 적었듯 패스워드를 제가 기억도 못하는 복잡한 것으로 설정해서 고생했던 것도 워드프레스는 공격을 많이 받는다는 생각 때문이었습니다. 그리고 그 중 하이라이트는 관리자 메뉴..겠죠. (물론 가장 중요한 건 root 디렉토리입니다. 지금 글 쓰면서도 생각하지만 wp-config.php랑 phpMyAdmin 털리면 끝장이죠.)

플러그인으로 찾아보면 뭐든 있는 워드프레스의 세계에서 관리자 접속화면을 wp-admin으로 두는 건 게으른 거죠.

여러가지 플러그인이 있는데.. 저는 그 중 WPS Hide Login 이란 것을 사용하고 있습니다. 매니지드 워드프레스에서 써봤는데 괜찮더군요. 그래서 이 블로그를 본격적으로 활용하면서 여기에도 설치해봤습니다.

설정 메뉴 들어가보면 login url을 이렇게 쉽게 바꿀 수 있습니다. wp_admin보다 더욱 쉬운 login이 기존 주소라니 이거 위험한 플러그인이군요. 잽싸게 저만의 주소로 바꿨습니다. ^^


워드프레스는 블로그만 생각하고 만들어진 도구가 아닌 것 같습니다. 무려 60초마다 임시본을 서버에 저장하도록 되어 있는데 임시본이 여러개 있으면 제가 뭔가 실수를 했을 때에 돌아갈 수도 있고 장점이 분명 있긴 합니다만- 그래도 자동으로 임시본이 생기고, 심지어 수정할 때마다 생기는 것은 좀 무시무시합니다.

그래서 그걸 설정에서 없앨 수 있는가 봤는데, 안타깝게도 현재 설정에서 건드려서 없앨 수는 없고 그에 관련된 플러그인이 여럿 있더군요. 그런데 플러그인은 어째 꺼림직하다는 느낌이라서 다른 방법은 없는가 봤더니,

어차피 그것도 SQL에 저장되는 것. SQL 접속하면 한방에 해결할 수 있더군요. (출처)

DELETE FROM wp_posts WHERE post_type=”revision”;

아주 직관적입니다. 임시본이 저장되는 곳이 포스팅과 같은 공간이고 최종본의 post_type은 post이고, 임시본은 revision이니까 wp_posts 테이블에서 revision이라 붙은 것을 싹쓸어버리면 되네요.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *