묻고답하기
관리자 페이지 접속시 500 에러 디버깅 방법 문의
2015.09.13 01:32
모듈을 개발 중인데,
관리자 페이지에 들어가려고 아래와 같이 주소를 클릭하면 HTTP 500 내부 서버 오류가 발생하네요.
어떤 파일에서 오류가 났는지 찾으려고 아래 파일들의 PHP 오류를 찾고 있습니다.
1. mymodule.view.admin.php
- function dispMyModuleContent()
그런데 이 admin 모듈에서 init() 함수도 봐야 하나요? ini()은 해당 PHP 파일이 포함하고 있는 function을 부르면
항시 실행되는건가요?
2. 그 외에 어떤 파일들을 봐야 할까요?
저는 해당 dispMyModuleContent 메소드에서 셋팅한 템플릿 파일 (/tpl/index.html)과 관련된 HTML, JS 파일들을 봤습니다.
$this->setTemplateFile('index');
그 외 Ruleset, filter, queries, schemas 는 물론이고 심지어 info.xml과 module.xml 파일까지도 봤네요.
하지만 마땅히 에러를 찾을 수가 없어 답답하네요 ~
고수 분들이 계시면 도움을 좀 요청드립니다 ( _ _)a
그런데 아무리 봐도 PHP 구문 에러가 뵈질 않네요.
예를 들어 관리자 화면에서 특정 모듈의 설정을 위해 아래와 같이 링크를 클릭하면,
http://www.mydomain.com/index.php?module=admin?act=dispMyModuleContent
해당하는 함
댓글 3
-
LiXCode
2015.09.13 12:06
-
과니
2015.09.15 19:12
조언 감사드립니다. 일단 php.ini에서 log_errors를 yes로 바꿔서 디버깅 시작해보고 있습니다 ~.~;
-
배워서남준다
2015.09.16 08:06
모듈 함수 로딩시 init 도 체크해야 합니다.
Internet Explore 사용중이시면 인터넷 옵션 -> 고급 -> HTTP 오류메시지 표시 체크 해제 하시고 브라우저 재실행해 보세요.
브라우저에서 HTTP 500 오류 페이지로 override 할 경우 오류 메시지를 못 볼수 있습니다.
그래도 오류 메시지가 확인되지 않으시면 php.ini 에서 log_errors 를 yes 로 바꾸시고 웹 루트에 php_errors 파일을 참고하세요.
추가로 IIS 사용중이시라면, FastCGI 설정에서 표준 오류모드를 "IgnoreAndReturn200" 으로 바꾸셔야 합니다. 안그러면 PHP 오류에 전부 HTTP 500으로 return 합니다. (warning, notice 조차도요.)