Ich habe ein paar Verbesserungen gefunden, um mein Problem zu lösen.
Erstens : Laden Sie eine separate php.ini
Datei:
Ein Benutzer in einem Arch Linux-Forum hat dies von der man php
Seite 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.ini
Datei erstelle, wird nur diese Datei geladen und nicht /etc/php/php.ini
mit dem php
Befehl cli. php-fpm
lädt noch die /etc/php/php.ini
.
Zweitens : Laden Sie verschiedene Modulkonfigurationen:
Ich habe in der PHP-Dokumentation die PHP_INI_SCAN_DIR
Umgebungsvariable gefunden. Daher habe ich die /usr/lib/systemd/system/php-fpm.service
Datei verschoben /etc/systemd/system/php-fpm.service
und 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.d
und 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-ini
und 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
.