문제 상황

레이아웃 관련해서 수정하다가 치명적인 문제를 발견하였다.

연구실 홈페이지를 수정하는 과정에서 발생했는데, 왜 발생했는지도 모르겠고,

이거 직전에 관리자 설정이 약간 버벅인걸 무시하면 안되었는데

그걸 무시하고 업데이트하고, 관리자 설정 몇 개를 건드리다보니 아예 홈페이지가 죽어버렸다.

 

홈페이지에 유달리 스팸 댓글이 많길래 확인해보니, 130000개나 스팸 댓글이 달려있었다.
그래서 그 댓글들을 일괄적으로 지우는 방법은 모르겠어서
일단 60000개의 댓글이 달려있던 공지 게시글을 지우고,
댓글을 관리자만 달 수 있게 하고, 스팸으로 의심되는 이메일 연동하지 않은 계정의 권한을 박탈했다.

그뒤로 설정 페이지가 버벅인걸 보면, 이거 때문인것같기도 하다.

 

심지어 admin을 건드려도 뭐가 되지 않고 있는 상황.

이걸 수정하기 위해서 어떤 조치를 취해야 하는지 확인해보았다.

 

따로 가리진 않겠습니다. 홈피 주소 모른척 해주세요.. 프라이버시..

Fatal error: Call to a member function getAction() on a non-object in C:\APM_Setup\htdocs\classes\db\DB.class.php on line 629

 

닷홈 호스팅(이것도 4년 전..)이 아닌 APMsetup을 이용한 웹은 안다뤄본지 5년정도 되었기 때문에, 진짜 기억이 전혀 나지 않았다.

최근에 한 코딩도 모두 C++ 아니면 자바 아니면 파이썬이었는데

진짜 미치겠다

내가 만든 게 아닌데 고장냈다는 사실이 나를 더 힘들게했다.

하지만 힘들어 할 시간에 복구를 해야한다는 생각이 더 많이 들었기 때문에 이렇게 해결과 함께 정리중이다.

 

해결을 위한 시도

 

 

1. 웹 url상으로 admin이 접근되는지부터 확인하였다.

홈피url/admin

음 그래도 똑같이 문제가 발생했다.

심지어 같은 getAction()함수에서 발생한 문제였다.

 

2. 해당 웹 페이지를 구동할 수 있게 하는 서버에 접속해야한다고 해서, 서버를 구동하고 있는 컴퓨터를 확인하였다.

 

3. 서버 컴퓨터에서 캐시파일 재생성이 필요하다는 의견이 있어서 캐시 파일 재생성을 시도하였다. (대부분의 문제는 이거로 해결하시면 될듯)

 

서버를 구동하고 있는 컴퓨터의 cache에 들어가보니, 오늘 업데이트한 내용들에 대해서 캐시가 저장되어 있는 것을 확인할 수 있었다.

저기서 queries 폴더를 날리면 거의 대부분의 문제는 해결되는데, 나의 경우는 저 cache안에 있는 폴더들을 모두 날린뒤에
다시 queries 폴더를 날려주니까 구동이 된 케이스다.

 

 

 

그래서 해당 내용들을 일단 지워주었다.

캐시기 때문에, 기존에 저장되어 있던 데이터들에는 크게 영향이 없을거라고 생각하고 지워주었다.

 

그래도 구동이 되지 않았다.

 

그래서 일단 서버 컴퓨터의 상황을 파악해보았다.

디스크 상황이 굉장히 살벌한 상황이었다.

 

 

이거 때문이었나보다.

 

일단 디스크 관리를 해주어야 할 것같아서, 기존 휴지통에 있던 애들을 모두 지워주기로 했다.

 

지웠는데도 용량이 3.5기가 정도밖에 남지 않았고, 여전히 상황은 개선되지 않았다.

 

4. apmsetup 의 서버를 껐다가 켜보기로 했다.

그래도 달라지는 부분이 없었다.

 

5. php 문제는 아닌 것 같은게 아까까지만 해도 잘 되던것이 안되는 문제였기 때문에, 디스크 또는 캐시 문제라고 판단해서 다시 기존 방법들을 되짚어보면서 재실행해보기로했다.

 

6. *(해결) 다시 아까의 cache폴더에 들어가니까

 

이렇게 쿼리가 또 생겨있길래

쿼리 폴더를 아예 날려버렸다.

 

 

이렇게 홈페이지 복구에 성공.

레이아웃에서 메뉴 출력되지 않던 문제도 해결완료.

 

이제 도메인 바꿔서 모든 게시물 수정해야하는데, 안 건드리고 싶다...

 

 

참고한 사이트

github.com/xpressengine/xe-core/issues/1926

xe1.xpressengine.com/qna/22630442

jwkim96.tistory.com/33