Я нашел несколько настроек, чтобы решить мою проблему.
Сначала : загрузите отдельные 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
команда php
cli. 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
каталог.