[PHP] Xdebug란?

Xdebug

PHP extension이며 디버깅, 프로파일링, 추적 등 다양한 기능을 제공한다.
PHP 8 버전 이상 사용할 경우 Xdebug는 3 버전 이상 사용해야 한다.
VSCode ide를 사용하고 Docker Compose를 적용하여 간단하게 Xdebug를 설정해본다.

하단 예시 디렉토리 구조 directory 구조

Step 1

docker-compose.yml 작성하기

1
2
3
4
5
6
7
8
9
10
version: '3.8'

services:
    app:
    build: ./docker/app
    ports:
        - '8080:80'
    volumes:
        - ./src:/var/www/html
        - ./docker/app/php.ini:/usr/local/etc/php/php.ini


Step 2

docker/app/Dockerfile 작성하기

1
2
3
4
FROM php:8.1-apache

RUN pecl install xdebug \
    && docker-php-ext-enable xdebug


Step 3

docker/app/php.ini 작성하기

1
2
3
4
5
[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal
xdebug.client_port=9003


Step 4

extension install extension

Step 5

launch.json 생성 launch.json

Step 6

launch.json에 xdebug 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "pathMappings": {
                "/var/www/html/": "${workspaceRoot}/src"
            }
        }
        ...
    ]
}


Step 7

src/index.php 파일 생성 후 임의의 코드를 작성하고 F5키를 누르면 디버깅모드가 실행되는 것을 확인할 수 있다.(※ 코드 줄번호 표시 좌측에 클릭을 하여 break point를 지정한다.) 디버그 실행

Categories:

Updated:

Leave a comment