[2.0.3] FPM is started with -c pointing at the scanned ini dir, so php.ini is parsed twice ("Cannot load Xdebug - it was already loaded")

Abierto
#1,797 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
22/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
php
Área
devops

Línea de trabajo

Start from the reproduction steps: run php83-fpm -t -y on config/fpm/8.3-fpm.conf with and without -c pointing at config/php/83/php.ini, and compare with -i output. The payload does not show the Herd source that launches FPM, so locate where the -c flag is added in 2.0.3. Done means FPM starts without the duplicate Xdebug 'already loaded' message in Herd_Debug.log, and the php.ini is still applied once.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

macOS

Herd version: 2.0.3
macOS: 26 (Darwin 25.6.0), Apple Silicon

What happens

Herd_Debug.log shows, for every FPM version at startup:

Process FPM-8.3 error: Cannot load Xdebug - it was already loaded
Cause

Herd's PHP binaries are compiled with the scan dir
~/Library/Application Support/Herd/config/php/83/, which contains php.ini.
2.0.3 now also starts FPM with -c pointing at that same php.ini, so the file is
loaded twice: once as the main config, once as a scanned additional .ini.
Any zend_extension= line in it (here, Xdebug enabled through Herd) fails the
second time.

Reproduce
H=~/Library/Application\ Support/Herd
"$H/bin/php83-fpm" -t -y "$H/config/fpm/8.3-fpm.conf"
# clean
"$H/bin/php83-fpm" -t -y "$H/config/fpm/8.3-fpm.conf" -c "$H/config/php/83/php.ini"
# Cannot load Xdebug - it was already loaded

php83-fpm -c .../php.ini -i reports both
Loaded Configuration File => .../config/php/83/php.ini and
Additional .ini files parsed => .../config/php/83/php.ini.

The CLI binary does not pass -c and loads the file once.

Impact

Xdebug still ends up loaded once and the other directives are applied twice with the
same values, so it is mostly noise in the log. But the double parse is unintended
and could break with non-idempotent directives.

Lenguaje dominante
Sin datos de lenguaje
Estrellas
125
Forks
1
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de beyondcode/herd-community

Todos los issues de beyondcode/herd-community

Issues similares

Más issues de DevOps

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.