[PHP] VScode에서 Xdebug를 사용하여 디버깅

컨디션

  • PHP 8.0.2
  • MySQL 8.0
  • Docker 20.10.0
  • Xdebug 3.0.4
  • 미리 준비하다


    설치 방법
    4
  • Visual Studio Code(이하 VScode)
  • 4
  • PHP Debug(VScode의 확장 기능)
  • Docker


    Docker를 사용하여 환경을 구성합니다.

    디렉토리 구조


    ├── docker
    │   ├── app
    │   │   ├── Dockerfile
    │   │   └── php.ini
    │   └── db
    │       └── my.cnf
    ├── docker-compose.yml
    └── src
        └── index.php
    

    Dockerfile


    Dockerfile
    FROM php:8.0.2-apache
    
    RUN apt-get update && apt-get install -y \
        git \
        unzip \
        vim
    
    # xdebug インストール
    RUN pecl install xdebug \
        && docker-php-ext-enable xdebug
    

    php.ini


    php.ini
    [xdebug]
    ; リモートデバッグ有効化
    xdebug.mode=debug
    ; リモートデバッグの自動開始
    xdebug.start_with_request=yes
    ; ホスト指定
    xdebug.client_host=host.docker.internal
    ; ホスト側のポート指定
    xdebug.client_port=9003
    

    php.ini


    my.cnf
    
    [mysqld]
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    
    [client]
    default-character-set=utf8mb4
    

    docker-compoes.yml


    docker-compose.yml
    version: '3'
    
    services:
        app:
            build: ./docker/app
            ports:
                - '8080:80'
            volumes:
                - ./src:/var/www/html
                - ./docker/app/php.ini:/usr/local/etc/php/php.ini
        db:
            image: mysql:8.0
            environment:
                MYSQL_ROOT_PASSWORD: root
                MYSQL_DATABASE: php_db
                MYSQL_USER: php_user
                MYSQL_PASSWORD: php_pass
                TZ: 'Asia/Tokyo'
            volumes:
            - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
            ports:
            - 3306:3306
    

    VScode 설정


    1. launch.제작 json




    2. launch.json 편집


    편집 전

    둘러싸인 부분을 아래의 내용으로 바꾸다
    launch.json
    "configurations": [
            {
                "name": "Listen for XDebug",
                "type": "php",
                "request": "launch",
                "port": 9003, // php.iniで設定したポート番号
                "pathMappings": {
                    // Dockerのドキュメントルート:ローカルのドキュメントルート
                    "/var/www/html/": "${workspaceRoot}/src"
                }
            },
    

    3. Xdebug 시작



    4. 디버그


    좋은 웹페이지 즐겨찾기