He encontrado algunos ajustes para resolver mi problema.
Primero : cargue php.ini
archivos separados :
Un usuario en un foro de Arch Linux publicó esto desde la man php
página:
FILES
php-cli.ini The configuration file for the CLI version of PHP.
php.ini The standard configuration file will only be used when php-cli.ini cannot be found.
Si creo un /etc/php/php-cli.ini
archivo, solo se cargará este archivo y no /etc/php/php.ini
con el php
comando cli. php-fpm
todavía está cargando el /etc/php/php.ini
.
Segundo : cargar diferentes configuraciones de módulos:
He encontrado en la documentación de php la PHP_INI_SCAN_DIR
variable de entorno. Por lo tanto, moví el /usr/lib/systemd/system/php-fpm.service
archivo /etc/systemd/system/php-fpm.service
y agregué la siguiente configuración al archivo de servicio:
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=notify
Environment="PHP_INI_SCAN_DIR=/etc/php/fpm/conf.d" ; <-- I have added this line
PIDFile=/run/php-fpm/php-fpm.pid
ExecStart=/usr/bin/php-fpm --nodaemonize --fpm-config /etc/php/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
Después de reiniciar / volver a cargar los servicios, php-fpm carga solo los archivos /etc/php/fpm/conf.d
y ya no /etc/php/conf.d
. Esto me permite configurar cli y fpm por separado.
Quizás esta no sea la mejor solución, pero se ajusta a mi caso de uso. Si todos tienen una mejor solución, ¡no dude en publicar su respuesta!
--php-ini
, luego cargue el xdebug solo en el segundo Servicio. Por supuesto, el segundo servicio debe ejecutarse en un puerto / socket diferente. Lo configuréEnvironment="PHP_INI_SCAN_DIR=/etc/php-debugger.d:"
en mi archivo de servicio, agregó los dos puntos para que cargue todos los módulos predeterminados además del xdebug que copié en eldebugger.d
directorio.