Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

584
Views
Xdebug (dentro del contenedor Docker) ignorando la variable de entorno XDEBUG_CONFIG

Estoy ejecutando una aplicación PHP en Docker y me gustaría depurarla usando XDebug. En mi docker-compose, agregué las siguientes líneas en la parte de phpfpm:

 environment: XDEBUG_CONFIG: "remote_enable=1 remote_host=192.168.110.29 remote_port=9000 idekey=PHPSTORM remote_autostart=1" PHP_IDE_CONFIG: "serverName=reports.dev"

Configuré PHPStorm de la manera correcta, escuchando en el puerto 9000 y ejecuté la aplicación.

La aplicación funciona perfectamente, pero parece que XDebug no funciona.

Si muevo las líneas de configuración dentro del archivo php.ini, el depurador funciona, excepto por el hecho de que el nombre del servidor está vacío y no puedo depurar (es por eso que intenté seguir la forma de configuración de docker-compose).

Si, dentro del contenedor acoplable, ejecuto echo $XDEBUG_CONFIG, el resultado es correcto, pero parece que XDebug no lee esa variable Env.

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Yo tuve el mismo problema. Mi imagen se basó en nimmis/alpine-apache-php7/ . Descubrí que la imagen estaba usando supervisor para iniciar procesos. supervisor no tiene conocimiento de las variables de entorno de Docker.

La convención para decirle al supervisor que se debe ejecutar un proceso es crear un script de run en /etc/sv/{process}/run . Se usó un script como este para iniciar Apache. Necesitaba cambiar el script para que importara las variables de entorno de Docker antes de iniciar Apache.

Los documentos de la imagen base explican la convención para importar el entorno de Docker:

Si necesita variables de entorno desde la línea de comandos de la ventana acoplable (-e,--env=[]) agregue

source /etc/envvars

antes de usarlos en el archivo de script

Así que creé mi propio script de run personalizado para Apache: agregué source /etc/envvars justo antes de la ejecución de httpd .

Sobrescribí el script de run original , agregando una COPY simple a mi Dockerfile :

 COPY apache-run.sh /etc/sv/apache2/run

Esto aseguró con éxito que mi $XDEBUG_CONFIG fuera visible para httpd en el momento en que se lanzó. Pude confirmar que esto afectó mi configuración de PHP al imprimir phpinfo(); en una página web.

about 4 years ago · Santiago Trujillo Report

0

Hiciste un phpinfo(); ? Eso debería indicarle la configuración utilizada.

Tuve el mismo problema... me tomó una eternidad darme cuenta. ¿Está utilizando xdebug.remote_connect_back=1 ? Si es así, elimine esa línea.

Mi proxy nginx estaba reenviando una IP (lo cual era incorrecto) y, por lo tanto, se ignoraba la IP configurada en XDEBUG_CONFIG.

about 4 years ago · Santiago Trujillo Report

0

Para mí fue un problema diferente al usar la imagen acoplable PHP-FPM-Alpine oficial ( FROM php:7-fpm-alpine )

Necesitaba agregar XDEBUG-CONFIG a la configuración del grupo fpm: env[XDEBUG_CONFIG] = $XDEBUG_CONFIG

Ver configuración completa https://github.com/attrib/docker-symfony

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!