[PHP] xDebug 설치 방법


Development note/PHP  2019. 9. 16. 22:09

안녕하세요. 명월입니다.


이 글은 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를 설치하는 방법에 대한 설명이었습니다.


궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.