es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PhpStorm no puede utilizar Xdebug en un contenedor de Docker dentro de una caja Vagrant.

He configurado Xdebug dentro del contenedor PHP que se ejecuta mediante Docker dentro de Vagrant.

¿Cuál es la mejor manera de hacer que Xdebug funcione en PhpStorm, es decir, cómo exponer la información del depurador del contenedor de Docker (puerto 9003) para establecer una conexión con PhpStorm en el listener de Conexiones de Depuración de PHP habilitado? Dado que hay 2 capas de comunicación (PC -> Vagrant -> Docker)

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que Xdebug funcione en PhpStorm con el contenedor PHP configurado en Docker dentro de Vagrant, es necesario exponer el puerto del depurador (9003) del contenedor de Docker al host de Vagrant y luego redirigir ese puerto a la máquina host (PC).

    Aquí están los pasos para hacerlo:

    1. Abre el archivo Vagrantfile y agrega la siguiente línea al contenedor de Docker establecido:
    docker_args: ["--expose", "9003", "-p", "9003:9003"]
    

    Esto expondrá el puerto del depurador y lo redirigirá al host de Vagrant.

    1. Recarga la configuración de Vagrant ejecutando vagrant reload.
    2. A continuación, en PhpStorm, ve a Configuración > Lenguajes y Frameworks > PHP > Depuración y configura los siguientes ajustes:

    • Puerto de depuración: 9003
    • Host de depuración: 127.0.0.1
    • Usar asignación de rutas: Mapea el directorio del proyecto local al directorio donde se encuentra el código PHP dentro del contenedor de Docker.
    1. En la configuración de Ejecución/Depuración, selecciona la configuración de Depuración Remota de PHP y establece los siguientes ajustes:
    • Servidor: Configura una configuración de servidor que apunte al host de Vagrant y se mapee a la URL correcta desde la cual se está sirviendo el código PHP.
    • Depurador: Xdebug
    • Usar asignación de rutas: Mapea el directorio del proyecto local al directorio donde se encuentra el código PHP dentro del contenedor de Docker.
    1. Inicia la escucha de conexiones de depuración en PhpStorm haciendo clic en el icono del receptor telefónico en la esquina superior derecha del IDE.

    Con estos pasos, deberías poder establecer una conexión entre PhpStorm y el contenedor de Docker que se está ejecutando dentro de Vagrant y depurar tu código PHP.

Comments are closed.