안녕하세요. 명월입니다.
이 글은 PHP에서 xDebug를 설치하는 방법에 대한 글입니다.
이 전에 PHP에서 디버깅방법에 대해 간략하게 설명한 적이 있습니다.
링크 - [PHP] 변수 확인 함수 var_dump, debug_zval_dump, print_r
거기에 나오는 var_dump의 정보와 에러가 발생할 때 발생하는 메시지를 좀 더 정확하게 분석해 주는 라이브러리가 xDebug입니다.
먼저 index.php에 phpinfo를 넣고 apache로 기동합니다.
그리고 위 페이지를 소스 보기를 한 다음에 소스 전체를 복사합니다.(Ctrl + c)
그리고 아래의 링크로 가서 붙여넣기를 합니다.
다운로드 패키지 검사 링크 - https://xdebug.org/wizard.php
그럼 패키지 정보가 나오는데 아래에 xdebug를 다운 받습니다.
다운받은 파일은 php폴더 아래의 ext폴더에 넣습니다.
그리고 php.ini를 수정합니다.
zend_extension = d:\apachephp\php\ext\php_xdebug-2.7.2-7.3-vc15-x86_64.dll
위 검사 링크 페이지에도 친절하게 ini 하단에 추가하라고 쓰여 있으니 복사 붙여넣기하면 됩니다.
그리고 서버를 재기동해서 보면 하단에 xDebug가 로딩되는 것을 확인할 수 있습니다.
<?php
class Test{
public function print(){
echo $this->data;
}
}
$obj = new Test();
?>
<!DOCTYPE html>
<html>
<head>
<title>title</title>
</head>
<body>
<?=$obj->print()?>
</body>
</html>
위 예제는 Test 클래스의 print 함수에서 맴버 변수 data를 참조하는 부분인데 맴버변수 data는 선언이 되지 않았습니다. 당연히 에러가 발생하는 페이지입니다.
근데 xDebug를 설치하기 전에는 아래와 같은 출력이 나옵니다.
그런데 xDebug가 설치가 되면 아래와 같은 형태가 나옵니다.
Call stack이 표시가 되면서 어디가 에러가 나왔는지 좀 더 정확하게 알수 있는 메시지네요..
사실 제가 xDebug를 이클립스에 붙여서 사용하려 했습니다. 그런데 저는 에러가 발생하네요..
원인은 이클립스 자체 버그라고 하는데...아무리 해결하려고 해도 해결 방법이 나오지를 않네요.. 혹시 아시는 분이 있으면 알려주세요.
참조 링크 - https://xdebug.org/
참조 링크 - https://wiki.eclipse.org/Debugging_using_XDebug
참조 링크 - https://yard.tistory.com/entry/Eclipse-PHP-Debug
여기까지 PHP에서 xDebug를 설치하는 방법에 대한 설명이었습니다.
궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.
'Development note > PHP' 카테고리의 다른 글
[PHP] ajaxForm을 이용한 파일 업로드(프로그래스바로 파일 업로드 상태를 표시하는 방법) (0) | 2019.10.26 |
---|---|
[PHP] String 객체를 다루는 방법 (EOT, ob_start, ob_get_contents, ob_end_clean, ob_end_flush) (0) | 2019.10.26 |
[PHP] PHPMailer 라이브러리를 이용해서 메일 발송하는 방법 (0) | 2019.10.19 |
[PHP] PHP의 HttpConnection 도구 cURL 사용 방법 (0) | 2019.10.18 |
[PHP] Apache 환경의 같은 호스트 안에서 PHP와 Java(Servlet)를 동시에 기동, 운영하는 방법 (0) | 2019.10.17 |
[PHP] 로그 라이브러리 Log4Php (0) | 2019.10.13 |
[CakePHP] CSRF token mismatch가 발생했을 때 처리하는 방법 (0) | 2019.10.05 |
[PHP] 확장 DLL(Zend Extension dll) 파일을 작성하고 적용하는 방법(사용자 내장 함수 만들기) (0) | 2019.09.21 |