웹마스터 팁

오랫동안 xe를 사용해오면서 이런경우는 처음입니다.

저 스스로가 방만한 서버설정이나 덮어씌우기로 

그동안의 버젼업을 대충대충 넘어갔기 때문일지도 모를일입니다.


그럼 각설하고 문제의 원인과 해결방법에 대해 간단하게 정리 하겠습니다.


XE버젼 1.7.3.4


1. 문제 내용

- xe업데이트 이후 관리자를 제외한 일반 회원 글쓰기가 안됨

- 등록버튼 클릭시 "서버등록중.." 메세지만 뜨고 반응없음

- 관리자로 로그인시 정상적으로 글쓰기 동작

- php 보안설정을 최대한 다 풀었으나 마찬가지로 동작안함

(보안설정은 모든 함수 허용, register_global=on 등 php기본 보안도 안된상태)

- 덮어씌우기 및 재설치를 해도 일반회원 글쓰기가 안됨

- 권한오류를 의심하여 모든사용자 글쓰기 허용해도 글쓰기가 안됨


2. 원인 분석

- 페이지상에 에러가 바로 표시되지 않기때문에 에러나는 부분을 직접 찾음

-  Fatal error:  include() [ function.include]: Failed opening '/xxxx/xe/classes/security/phphtmlparser/src/htmlparser.inc' for security issues in /xxxx/xe/classes/security/EmbedFilter.class.php on line 3

htmlparser.inc 파일이 모든 문제의 원인 

(파일 내용은 전혀 문제없습니다)(파일 확장자가 문제)


3. 해결방법

- php환경설정에서 .inc파일을 include 허용하면 됩니다.

- 단, 보안상 php확장자만 실행하기 원하는 사람들은 확장자를 직접 수정합니다.

htmlparser.inc -> htmlparser.php

=> 그리고 /xxxx/xe/classes/security/EmbedFilter.class.php 3번째 줄에서


include _XE_PATH_ . 'classes/security/phphtmlparser/src/htmlparser.inc'; 를

include _XE_PATH_ . 'classes/security/phphtmlparser/src/htmlparser.php'; 로 고치면 됩니다.


4. 마치며

- xe는 순수 php 실행이 필요한 부분은 .php 파일로만 되어 있는줄 알았습니다.

그런데 뜬금없이 .inc가 php실행이 필요한 부분으로 되어 있었습니다.

xe 글쓰기 오류의 근본 원인임을 확인하고 조금 당황스러웠습니다.


- 단순 재설치나 덮어씌우기로 해결이 안되시던분들에게 작은 도움이 되길 바랍니다.

- 현재 글쓰기 정상 동작중입니다;;;



ps : 

추가로 html2text.inc 파일도 있는데 이건 어디서 오류를 뿜어줄지 모르겠습니다.

나중에 오류나면 확인해서 위와같이 수정하시면 됩니다.