Dico

Visual Studio Code + PHP Xdebug

Window 환경에서 Visual Studio Code 로 PHP 디버깅하기
+ 하는 김에 Apache 설치

1. PHP Download

Link: https://windows.php.net/download/

PHP는 Multi-Process를 지원하는 언어
Thred Safe(TS): Multi-Thread
Non Thread Safe(NTS): Single Thread\

Window bit에 맞는 Zip 파일 다운로드

2. Apache Download

Link: https://www.apachelounge.com/download/

Window bit에 맞는 Zip 파일 다운로드

3. 압축 풀기

실행 파일 위치를 지정하여 해당 폴더에 압축 풀기
D:\apache-2.4
D:\php-7.4

4. Apache Setting

1) httpd.conf 수정

# Modify
Define SRVROOT "D:/apache-2.4/Apache24"
# ADD
ServerName localhost

2) 관리자 권한으로 CMD 실행

3) 설치 및 실행

> D:\apache-2.4\Apache24\bin\httpd.exe -k install
Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.

4) httpd.conf 문법 검사

> D:\apache-2.4\Apache24\bin\httpd.exe -n "Apache2.4" -t

5) 구동
Win+Q: Services.msc 열기
Apache2.4 서비스 시작 실행

servicesmsc.PNG

* 제거

> D:\apache-2.4\Apache24\bin\httpd.exe -k shutdown
> D:\apache-2.4\Apache24\bin\httpd.exe -k stop
> D:\apache-2.4\Apache24\bin\httpd.exe -k uninstall

5. PHP Setting

1) php.ini 생성
php.ini-development 내용 중 extension 폴더 경로를 수정하여 ini 생성

# ADD
extension_dir = "D:\php-7.4\ext"

2) httpd.conf 수정

# ADD
include conf.d/*.conf

3) /Apache24/conf.d/php.conf 파일 생성

# ini 위치
PHPInidir "D:/php-7.4"

# php7apache2_4.dll 지정
LoadModule php7_module "D:/php-7.4/php7apache2_4.dll"

AddType application/x-httpd-php .html .php

<ifModule dir_module>
    DirectoryIndex index.php
</ifModule>

4) Apache 재시작

> D:\apache-2.4\Apache24\bin\httpd.exe -k restart

6. localhost 확인

localhost.PNG

7. index.php 확인

Apache htdocs 폴더에 index.php 생성

<?php
phpinfo();
?>

8. localhost 확인

localhost2.PNG

9. Visual Studio Code 확장 설치

PHP IntelliSense
PHP Debug


10. setting.json 파일에 php 설정

1) Ctrl + ,
2) php setting
3) setting.json

"php.validate.executablePath": "D:/Dev/work/Library/php-7.4/php.exe"

11. launch.json 설정

Ctrl + Shift + D

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Program",
            "type": "php",
            "request": "launch",
            "port": 9000,
            "pathMappings": {
                "/var/www/html": "${workspaceRoot}/www",
                "/app": "${workspaceRoot}/app"
            }
        }
    ]
}

12. Xdebug Install

참고 Link: https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug

Link: https://xdebug.org/wizard

1) phpinfo() 내용을 전체 복사 붙여넣기 => Analyse my phpinfo() output => 권장하는 dll 파일 다운로드
2) php-7.4/ext 에 dll 파일 삽입
3) php.ini 내용 추가

[XDebug]
zend_extension = "D:\php-7.4\ext\php_xdebug-2.9.6-7.4-vc15-x86_64.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

13. Apache 재시작 후 phpinfo() 확인

> D:\apache-2.4\Apache24\bin\httpd.exe -k restart
xdebug.PNG

14. Visual Studio Code 에서 PHP 디버깅 (F5)

debug.PNG