Я нашел несколько настроек, чтобы решить мою проблему.
Сначала : загрузите отдельные php.iniфайлы:
Пользователь на форуме Arch Linux опубликовал это со man phpстраницы:
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.
Если я создаю /etc/php/php-cli.iniфайл, будет загружен только этот файл, а не /etc/php/php.iniкоманда phpcli. php-fpmвсе еще загружает /etc/php/php.ini.
Второе : загрузить различные конфигурации модуля:
Я нашел в документации PHP в PHP_INI_SCAN_DIRпеременную окружения. Поэтому я переместил /usr/lib/systemd/system/php-fpm.serviceфайл /etc/systemd/system/php-fpm.serviceи добавил следующую конфигурацию в служебный файл:
[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
После перезапуска / перезагрузки сервисов php-fpm загружает только файлы из, /etc/php/fpm/conf.dа не из /etc/php/conf.d. Это позволяет мне настраивать cli и fpm отдельно.
Возможно, это не лучшее решение, но я подхожу для моего использования. Если у всех есть лучшее решение, не стесняйтесь опубликовать свой ответ!
--php-ini, затем загружаете xdebug только во второй служба. Конечно, второй сервис должен работать на другом порту / сокете. Я установилEnvironment="PHP_INI_SCAN_DIR=/etc/php-debugger.d:"в своем служебном файле двоеточие, добавив его, чтобы он загружал все модули по умолчанию в дополнение к модулю xdebug, который я скопировал вdebugger.dкаталог.