해보자

[PHP/Xdebug] PHPStorm에 xdebug 적용 본문

카테고리 없음

[PHP/Xdebug] PHPStorm에 xdebug 적용

안댕 2023. 1. 24. 23:08

Xdebug 설정

https://xdebug.org/wizard

 

Xdebug: Support — Tailored Installation Instructions

Installation Wizard This page helps you finding which file to download, and how to configure PHP to get Xdebug running. Please paste the full output of phpinfo() (either a copy & paste of the HTML version, the HTML source or php -i output) and submit the f

xdebug.org

위 사이트에 phpinfo의 정보를 모두 복사해서 붙여넣으면 사용할 수 있는 버전의 xdebug 설치 방법 및 사용 방법에 대한 가이드를 제시해준다. php의 xdebug 다운로드를 모두 마쳤다. 

php8.2을 사용하고 있으니 xdebug 3.2.0을 사용하라 했다.

 

php.ini

php.ini파일에 아래 내용 추가하고,

[xdebug]
zend_extension="/opt/homebrew/lib/php/pecl/20220829/xdebug.so"
xdebug.mode=debug
xdebug.client_port=9000
xdebug.client_host=localhost
xdebug.start_with_request=yes
xdebug.idekey=PHPSTORM

잘 설정해주었다 생각했는데 왜 phpinfo()에서 xdebug 관련 내용이 보이지 않는 것인가ㅠㅠ

phpstorm에서 해당 버전의 PHP 아래 xdebug 버전도 잘 뜨는데..

아래 명령으로 php 버전 및 debuger 버전 확인해보면.. 이것도 아래와 같이 잘 나왔다.

php -v
Zend Engine v4.2.1, Copyright (c) Zend Technologies
with debug v3.2.0, Copyright (c) 2002-2022, by Derick Rethans
with Zend OPcache v8.2.1, Copyright (c), by Zend Technologies


혹시나해서 내용을 찬찬히 보던 중에 Loaded Configuration File이 none 으로 나오는 부분에 대해서 먼저 의심해보았다.

 

하지만 php --ini 에서는 php 경로가 잘 나오는걸 확인하고 억울했다.

이게 왜 다르지?? --고민

 


갑자기 결론

 

결과적으로 그것과는 별개의 문제였다.
php --ini에서 ini 파일 경로가 잘 나오면 phpinfo()에서 none으로 나타나도 무방한 모양이다. (여기서도 none으로 뜨면 php.ini 파일을 해당 경로에 생성해주든 복사해오든 해야 한다.)

왜 이렇게 되는지까지 알아가기엔 나는 너무 지쳤다.

 

위 Xdebug 설정 부분에서 3.2.0의 xdebug 설치 시 별도의 xdebug용 ini파일을 생성해주었어야 했는데 이 과정이 누락되었고.. xdebug 위자드가 잘 알려줬는데 내가 왜그랬을까!

그에 따라, 아래 파일을 생성하고 설정 내용을 재작성해주었다.
/opt/homebrew/etc/php/8.2/conf.d/99-xdebug.ini

zend_extension = xdebug
xdebug.start_with_request = yes
xdebug.client_host = localhost
xdebug.client_port = 9000
xdebug.remote_handler = dbgp
xdebug.idekey = PHPSTORM
xdebug.mode = debug

 

이 파일에 xdebug 관련 설정 값들을 모두 넣어주고 다시 돌리니 phpinfo()에서 잘 보였다.
phpinfo()를 봐가면서 내가 의도한대로 설정이 잘 되고 있는지 확인할 것.

 

xdebug3과 2버전에서 작성해야 하는 옵션들이 다르다. xdebug3 사용중인데 xdebug2의 옵션을 사용하고싶어 해도 그럴 수 없다.
그런 옵션들은 이렇게 말할 것이다. (setting renamed in Xdebug 3)

 

기타 PHPStorm 설정

  • phpstorm에서는 PHP - Debug - XDebug에서 debug port를 셋팅해줬던 값(default: 9003)으로 지정해놓을 것.
  • phpstrom debug 연결 리스닝을 on 할 것!

 

브레이크 포인트를 걸어 실행을 시켜보면 잘 작동한다 야호~ !