Ich habe ein paar Verbesserungen gefunden, um mein Problem zu lösen.
Erstens : Laden Sie eine separate php.iniDatei:
Ein Benutzer in einem Arch Linux-Forum hat dies von der man phpSeite gepostet :
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.
Wenn ich eine /etc/php/php-cli.iniDatei erstelle, wird nur diese Datei geladen und nicht /etc/php/php.inimit dem phpBefehl cli. php-fpmlädt noch die /etc/php/php.ini.
Zweitens : Laden Sie verschiedene Modulkonfigurationen:
Ich habe in der PHP-Dokumentation die PHP_INI_SCAN_DIRUmgebungsvariable gefunden. Daher habe ich die /usr/lib/systemd/system/php-fpm.serviceDatei verschoben /etc/systemd/system/php-fpm.serviceund der Servicedatei die folgende Konfiguration hinzugefügt:
[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
Nach dem Neustart / Neuladen der Dienste lädt php-fpm nur die Dateien von /etc/php/fpm/conf.dund nicht mehr von /etc/php/conf.d. Dadurch kann ich cli und fpm separat konfigurieren.
Vielleicht ist dies nicht die beste Lösung, aber ich passe zu meinem Anwendungsfall. Wenn jeder eine bessere Lösung hat, zögern Sie nicht, Ihre Antwort zu posten!
--php-iniund laden den xdebug nur in der zweiten Bedienung. Natürlich muss der zweite Dienst auf einem anderen Port / Socket ausgeführt werden. Ich habeEnvironment="PHP_INI_SCAN_DIR=/etc/php-debugger.d:"in meiner Servicedatei den Doppelpunkt hinzugefügt, damit alle Standardmodule zusätzlich zu dem xdebug-Modul geladen werden, das ich in das Verzeichnis kopiert habedebugger.d.