MAMP에서 Sublime Text로 Xdebug 사용하기

PHP를 디버깅하기 위해서는 Xdebug와 같은 확장을 서버에 설정해야 하고 리모트로 디버깅 하기 위한 클라이언트 프로그램이 요구된다. 이 글에서는 서버로 MAMP를 활용하며 클라이언트로 Sublime text를 활용한다.

Xdebug 활성화하기

MAMP에는 이미 Xdebug가 포함되어 있기 때문에 php.ini를 찾아 수정해주면 바로 활성화 할 수 있다. php.ini의 위치는 MAMP 기본 설치 시 /Applications/MAMP/bin/php/php<버전>/conf/php.ini에 있다. 해당 파일을 열어 가장 마지막줄로 이동하면 다음과 같이 주석처리 되어 있는 것을 확인할 수 있다.

[xdebug]
;zend_extension="/Applications/MAMP/bin/php/php5.5.10/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"

PHP 버전에 따라 위 내용이 다를 수 있다. 해당 확장을 불러올 수 있도록 맨 앞에 ;를 지운다. 그리고 리모트 디버깅을 위해 다음과 같이 내용을 추가해 저장한다.

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.5.10/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
xdebug.remote_autostart=1
xdebug.remote_connect_back=1
xdebug.remote_enable=1
xdebug.remote_port=9000

Sublime text에 Xdebug Client 설치 및 디버깅

xdebug client 설치

Cmd + Shift + P 를 눌러 Command Palette를 열고 Install Package를 실행해 Xdebug Client를 설치한다.

Run xdebug

설치 후 메뉴에서 Tools > Xdebug > Start Debugging을 실행해 디버깅 세션을 시작한다.

세션이 정상적으로 시작되었다면 디버깅 하고자 하는 페이지에 다음과 같이 디버깅 쿼리 스트링을 붙여 다시 접속해보면 Sublime Text에서 디버깅이 가능한걸 확인할 수 있다.

http://localhost/example.php?XDEBUG_SESSION_START=sublime.xdebug
sublime text with xdebug

하단 4개의 창에서 Context, Watch, Stack, Breakpoint를 확인할 수 있으며 코드에서 오른쪽 클릭으로 Breakpoint나 watch expression을 추가해 확인할 수 있다.

OSX에서 사용 가능한 클라이언트

근래의 대다수 에디터와 IDE에서 기본적으로 내장되어 있어 현재 사용하고 있는 에디터나 IDE에 있는 기능을 먼저 확인해보도록 하자. 다음은 OSX에서 사용 가능한 standalone 클라이언트다.

김용균

안녕하세요, 김용균입니다. 문제를 해결하기 위해 작고 단단한 코드를 작성하는 일을 합니다. 웹의 자유로운 접근성을 좋아합니다. 프로그래밍 언어, 소프트웨어 아키텍처, 커뮤니티에 관심이 많습니다.

이 글 공유하기

이 글이 유익했다면 주변에도 알려주세요!

페이스북으로 공유하기트위터로 공유하기링크드인으로 공유하기Email 보내기

주제별 목록

같은 주제의 다른 글을 읽어보고 싶다면 아래 링크를 확인하세요.

July 15, 2014

Postfix로 서버에서 발송되는 메일을 리다이렉트하기

서비스나 웹사이트를 테스트를 하다보면 사용자에게 메일이 발송되는지 확인해야 하는 경우가 있다. 또한 실제로 운영되는 서비스를 테스트 환경에 놓고 테스트 하다가 메일이 사용자에게 발송되어 버리는 경우가 생길 수 있다. 물론 sendmail을 꺼두는 것…

July 13, 2014

Chrome 개발자도구 – 소소소한 팁

다른 브라우저를 사용하다가도 구글 크롬으로 돌아오게 되는 가장 큰 이유가 개발자 도구 때문이다. 물론 다른 브라우저에 내장된 개발자 도구들도 뛰어나지만 오래 사용하다보니 단축키나 사소한 기능들이 손에 익어버린 이유가 크다. 최근들어 멀티커서나 재미있…