Skip to content

Xdebug ES

Technomantus Corvi edited this page Sep 5, 2026 · 1 revision

Desarrollo local con Xdebug

1. Instalar

sudo apt install php-xdebug
sudo phpenmod xdebug
php -v   # debe mostrar: with Xdebug v3.x.x, ...

2. Configurar xdebug.ini

php --ini   # localiza el archivo de configuración

Añade (normalmente /etc/php/8.1/mods-available/xdebug.ini):

zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003

xdebug.mode=debug es necesario para el step debugging (develop solo NO funciona). Verifica:

php -i | grep -i "xdebug.mode\|xdebug.start_with_request"

3. Extensión del editor

Instala PHP Debug (xdebug.php-debug) en Antigravity/VS Code.

4. launch.json

{
    "version": "0.2.0",
    "configurations": [
        { "name": "Escuchar Xdebug", "type": "php", "request": "launch", "port": 9003 }
    ]
}

No añadas pathMappings en desarrollo puramente local (editor y servidor en la misma máquina) — un valor incorrecto o de ejemplo deja los breakpoints en unresolved y nunca se disparan. (Docker es distinto — ver Docker.)

5. Depurar

  1. Selecciona "Escuchar Xdebug", pulsa F5.
  2. php -S localhost:8050 -t public public/index.php (desde la raíz del proyecto).
  3. Pon breakpoints, visita http://localhost:8050.

Solución de problemas

  • Confirma que algo escucha en el puerto: sudo ss -ltnp | grep 9003
  • Activa el log propio de Xdebug para diagnosticar:
  xdebug.log=/tmp/xdebug.log
  xdebug.log_level=7

Revisa cat /tmp/xdebug.log tras una petición — busca si breakpoint_set muestra resolved o unresolved. unresolved suele significar un desajuste de pathMappings o que la ruta del breakpoint no coincide con lo que realmente se ejecuta.

Clone this wiki locally