Installare Xdebug su VSCode - ambiente con Docker e WSL

-

15 Settembre 2022

Come installare Xdebug in un ambiente di sviluppo su Visual Studio Code, all'interno di un Docker container su WSL.

Aggiungere questo nel Dockerfile:

FROM php:<tag che usi>

# La tua roba
# ...

# Se usi l'immagine ufficiale di PHP, attenzione a creare il php.ini
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" # per la produzione
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" # per lo sviluppo

# Install Xdebug
RUN apk add build-base \
    && apk add --no-cache --update --virtual buildDeps autoconf \
    && pecl install xdebug \
    && docker-php-ext-enable xdebug \
    && apk del buildDeps

Poi mettere questo nel launch.json di VSCode:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "pathMappings": {
                "/code": "${workspaceFolder}"
            },
            "hostname": "localhost"
        },
    ]
}

E questo nel php.ini:

; XDebug settings
xdebug.mode=debug,develop
xdebug.start_with_request=yes

Installare l’estensione ufficiale di Xdebug su VSCode.

A questo punto:

  • Esegui il debugger di VSCode configurato prima: "Listen for XDebug"
  • Imposta i breakpoints
  • Esegui il codice (via test o via chiamata HTTP dal browser)

Se i breakpoints non venissero colpiti, potrebbe essere necessario impostare la seguente regola sul firewall di Windows:

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow

Return to wiki index