VISUAL STUDIO CODE
xDebug for PHP
2020-12-20 되는 방법입니다.
준비
-
php 버전 7.x
-
apache24 (다른 웹서버 사용가능)
-
visual studio code ( php debug, php IntelliSence )
xdebug dll 다운로드
다운받기 전에 본인의 php 버전에 맞는 dll 을 받기 위해서
temp.php 파일을 만들고, 아래 코드만 입력합니다.
<?php
echo phpinfo();
?>
그리고 localhost:8080/temp.php 로 들어가면 아래와 같은 화면이 나오죠.
여기서 Ctrl + A 로 전체선택 하고, Ctrl + C 로 복사합니다.
그리고 xdebug.org/wizard(새창) 사이트로 이동합니다.
클릭 하면 다음과 같은 페이지가 나옵니다.
1. 저 링크를 눌러서 dll 을 다운로드
2. c:\php7\ext (이건 저의 경우이고요. 사이트에 표시된대로 dll 파일을 옮겨주세요.)
3. 그리고 php.ini 파일을 열어서 맨 아래에 zend_extension = c:\.... 뒤에까지 복붙합니다.
여기서 중요
몇가지 옵션을 추가해야 되더군요.
구글링 해보면 아래와 같이 옵션을 추가하라고 나와있는데, 제대로 동작을 안하더라고요
알고 보니 아래는 xDebug 2 버전입니다.
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.default_enable=1
(아래서 설명하겠지만) 제가 설치한 php debug 버전은 현재(2020-12) 최신 버전인 v1.13.0 입니다.
xDebug 3 는 옵션명이 바꼈다고 되어있네요. (다른 옵션들은 여기 링크에서 확인가능합니다.)
[xdebug]
zend_extension="c:\php7\ext\php_xdebug-3.0.1-7.4-vc15-x86_64.dll"
; Enable communications using DBGp protocol
xdebug.mode=develop
xdebug.start_with_request=yes
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9000
웹서버 재시작
php.ini 파일이 변경되었으므로, 웹서버를 다시 시작합니다.
(저의 경우 apache24 이므로)
윈도우시작 -> 서비스 또는 service 입력 -> apache24 재시작
Visual Studio Code Extension 설치
PHP Debug(Felix Becker) 와 PHP IntelliSense 를 설치합니다. ( 현재 버전은 1.13.0 과 2.3.14 )
launch.json 설정
launch.json 중
"launch currently open script"는 브라우저 실행 없이 바로 file 에서 디버깅하는 것이고
"debug for PHP" 는 웹브라우저를 실행할때 디버깅 하는 것입니다.
("name" 의 값은 임으로 입력해도 됩니다.)
(그리고 "port": 9000 은 웹서버 port 와 관련 없습니다. 8080 입력하지 마시고 그대로 9000 입력하세요.)
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Chrome",
"request": "launch",
"type": "pwa-chrome",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}"
},
{
"name": "launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000,
"runtimeExecutable": "C:\\php7\\php.exe"
},
{
"name": "debug for PHP",
"type": "php",
"request": "launch",
"port": 9000,
"runtimeExecutable": "C:\\php7\\php.exe"
}
]
}
혹시 모르니 VS CODE 를 재시작 합니다.
테스트
php 코드를 작성하고, break point 를 설정해봅니다.
그리고 debug 텝에서 launch currently open script 를 선택하고 디버그 실행을 해봅니다.
break point 를 설정한 6 라인에서 걸려있네요.
소스 상단에 실행 옵션이 있습니다.
그리고 웹 브라우저에서 실행 중 디버깅을 하기 위해
xDebug for PHP 를 선택하고 디버깅을 실행해 봅니다.
break point 에 걸리지 않은 상태로 실행이 되었습니다.
해당 소스를 웹브라우저에서 실행해 봅니다.
브라우저에서는 계속해서 로딩이 돌고 있을 겁니다.
Visual Studio Code 를 확인해봅니다.
걸렸습니다.
이제 즐 디버딩 하세요~
잘 안되시는 분들은 아래 확인해 보세요.
xDebug 2 또는 3 인지 -> php.ini 의 마지막에 추가해야하는 옵션 명이 다릅니다. 위 설명에서 확인하세요.
php.ini 에 ext 경로와 위에서 다운받은 dll 이 ext 경로에 제대로 복사되었는지.
웹서버 재시작 했는지.
vscode 의 launch.json 파일에 오타가 없는지.
vscode 의 settings.json 에 php 경로가 제대로 설정되어있는지.
vscode 재시작해보시고요~
다들 한번에 되시길 바래요~~
'php' 카테고리의 다른 글
[php] session timeout 설정하기 #$_SESSION 방법 (0) | 2020.12.23 |
---|---|
[php] session timeout 설정하기 #php.ini 방법 (0) | 2020.12.23 |
[PHP] MySQL 한글 깨짐 해결 (0) | 2020.12.17 |
[PHP] 서버 오류 확인하기. 개발 시 필수 (0) | 2020.12.17 |
[PHP] MySQL 사용하기. #connection (0) | 2020.12.17 |
댓글