php-fpmプールの構成値を別のファイルで上書きする


11

新しいサーバーのphp-fpmプール構成をカスタマイズする必要があるので、新しいプールファイルを作成することが可能/許可/推奨されているかどうかを疑問に思います。この名前は、元のファイルの後にアルファベット順になり、初期構成を上書きする値のみを含みます。

元の構成は/etc/php/7.0/fpm/pool.dnamedにありwww.confます。

インストールに関連するページによると、エンジニアはオリジナルを直接変更しているようです(初期値のコピーを保存しています)。例えば

[www]
...
user www-data
group www-data
pm.max_children 2

変更後に与える

[www]
...
user myapp         ; was www-data
group myapp        ; was www-data
pm.max_children 8  ; was 2

しかし、php-fpmの次のアップグレード後に繰り返されるタスクである可能性があります(さらに、構成が7.0パスにあるため、心配です)。

元のファイルを変更するのではなく、変更せずに、別のファイルを追加します。たとえばwwwmyapp.conf、同じプールを宣言し、変更された値のみを持つようにします

wwwmyapp.conf

[www]        ; same pool!
user myapp
group myapp
pm.max_children 8

pool.d、ファイルのリスト

www.conf
wwwmyapp.conf

であるためphp-fpm.conf、すべてのプールのconfファイルがロードされている、の値がwwwmyappのものの後に読み込まれますwww(同じでwwwプール)と第1の値をオーバーライドする必要があります。

  • いくつかのテストで機能し、エラーが報告されないようですが、すべての値で常に機能しますか?
  • 代わりに設定ファイルを直接上書きする必要がありますか?

php.netでも、どのドキュメントでも回答が見つかりませんでした。


少なくともDebian / Ubuntuベースのディストリビューションでは、アップグレードプロセスで、古い構成ファイルを保持するか、パッケージからアップグレードしたものをインストールするかを尋ねられます。新しい設定ファイルにサフィックスを付けてインストールするため、変更をその方法で確認できます。他のパッケージマネージャーにも同様の機能があると思います。したがって、それは意見の問題だと思います。ただし、同じ名前のプール定義が多すぎても、将来的に機能するとは思えません。
Tero Kilkanen 16

回答:


14

別のソースからの「公式」確認を見つけることができませんでしたが、いくつかの調査を行った後の結果がいくつかあります。

php7.0-fpmより具体的fpm-conf.cには、ソースコードを分析すると、

  • メイン設定ファイルphp-fpm.confが最初に読み込まれます[ fpm_conf_load_ini_file()]、
  • すべてのincludeディレクティブが順番に読み込まれ、glob()のおかげでファイルのリストが表示されます。
  • 各ファイルは、同じfpm_conf_load_ini_file()によって解析されます。
  • ファイル内のエントリは、以前に設定された値を上書きします。
  • すべての新規にincludeは、includes処理関数への再帰呼び出しがあります。
  • グロブ()関数は、デフォルト(なしで、名前をソートGLOB_NOSORTオプション)

したがって、少なくともこのバージョンでは、現在のコードを考慮するとこれがすぐに変更される可能性は低いと見なすことがpool.dできます。ディレクトリ構成ファイルをアルファベット順に配置しても安全です。以前に記録された値は、後で読み取られた同じ名前のエントリによって上書きされます。

の構成ファイルを処理するクリーンな方法があります。php-fpm配布ファイルには手を加えず、パッケージ化されたファイルよりもアルファベット順で名前が大きいカスタムファイルを追加します。このファイルには、変更が必要ないくつかのオプションが含まれています。


デフォルト構成を変更しない場合は+1。アップグレード中にデフォルトに戻されるため、本番環境で使用する場合は常に問題があります。
フェデリコガリ

pool.dの下のグローバルFPMオーバーライドは、セクションを使用して可能[global]です。例えばemergency_restart_threshold。php7.1-fpm ubuntu(サーバー18)でテスト済み。
hrvoj3e

デフォルトのプール名ですので。また、wwwオーバーライドする唯一の方法は次のようpool.dのファイル名を使用しているwwwsomethingか、で始まるxyまたはz
hrvoj3e

2

php-overrides.iniのようなファイルがある場合は、コピーしてください。

/etc/php/7.0/fpm/conf.d/99-overrides.ini

接頭辞99は実行順序によるものです


conf.dオーバーライドはphp-fpm.conf変数をオーバーライドできません(のpool.d/下でのみ[global](将来の自分への注意)
hrvoj3e
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.