XpressEngine Core ver. 1.4.5.10 로 업그레이드후, 홈페이지가 아예 안뜨는 문제가 발생했다.
디버깅을 해보니, ./modules/member/member.model.php의 getGroupImageMark()가 변경되면서 증상이 나타난 것인데, 예외처리가 제대로 안되어서 사이트가 죽어버리는 건 좀 심각한 문제라고 보여진다.

가만 살펴보니 기존의 XE 버전에서 table field가 추가되어 있다. 필자의 기존 버전도 1.4.5.x 버전이었으나, 1.4.5.10 으로 업그레이드하면서 2개의 사이트가 죽었는데, 둘다 같은 원인이었다.
다른 사이트들도 이러한 증상을 겪었을만한데, 왜 나는 못찾았을까. 아무래도 내가 검색을 제대로 못한 것이겠지...?



이 함수의 내용을 이전버전으로 돌려주던지, 혹은 DB를 수정하면 해결할 수 있다.

만약 DB의 테이블 구조를 수정할 권한이 없거나 자신이 없는 사람이라면, 임시방편으로 member.model.php 파일의 getGroupImageMark() 함수의 첫번째 줄에 return null; 을 추가하면 된다. 물론 그룹 정보는 제대로 나오지 않을 수 있다.


DB의 테이블 구조를 수정할 수 있는 사람이라면 필드를 하나 추가해주면 완전히 해결할 수 있다.
DB를 열어보면 xe_member_group 이라는 테이블이 있다. 문제가 되는 경우라면 list_order 라는 필드가 없을 것이다.

아래와 같이 필드명은 list_order, 종류는 bigint(11)로 해서 필드를 추가해주면 끝이다.

 


Posted by 찬이

댓글을 달아 주세요