回答:
私は私の問題を解決するためにいくつかの微調整を見つけました。
まず、個別の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
です。
2番目:異なるモジュール構成をロードします。
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を別々に構成できます。
おそらくこれは最善の解決策ではありませんが、私は自分のユースケースに適しています。誰もがより良い解決策を持っているなら、あなたの答えを投稿することを躊躇しないでください!
cliバージョンではいつでもこれを行うことができます。
php -c /path/to/your/php.ini
php-fpmで提供されるものをデフォルトのままにします。またはさらに良いことに、これをログインスクリプトに追加します
#〜/ .bashrc #エイリアスと個人的な機能 #PHPソースパーソナルini エイリアスphp = 'php -c /path/to/your/php.ini' #lsを色付け エイリアスls = 'ls --color' ...
使用しているバージョンを指定した方がいいでしょう
--php-ini
、独自のfpm構成を指定し、オプションで別のiniをで指定して、2番目にのみxdebugをロードします。サービス。もちろん、2番目のサービスは別のポート/ソケットで実行する必要があります。Environment="PHP_INI_SCAN_DIR=/etc/php-debugger.d:"
サービスファイルを設定し、コロンを追加して、debugger.d
dir にコピーしたxdebugに加えて、すべてのデフォルトモジュールをロードします。