web-dev-qa-db-ja.com

いくつかのphp5-fpmプールに共通の構成を含める

簡単に言うと、プールごとに繰り返すことなく、複数のphp-fpmプールに同じ設定を含めるにはどうすればよいですか?

詳細

Php5-fpmには、グローバルディレクティブとプールごとディレクティブがあります。すべての例とドキュメントで、各プールには必要なすべての設定があります。

[www]
user = $pool
group = $pool
listen = 127.0.0.1:9001
listen.owner = $pool
listen.group = $pool
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 30s
chdir = /var/www/$pool

[www2]
user = $pool
group = $pool
listen = 127.0.0.1:9002
listen.owner = $pool
listen.group = $pool
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 30s
chdir = /var/www/$pool

ご覧のとおり、ほとんどの構成は同じなので、すべてのプールに暗黙的または明示的に含めることができる場所にその構成を配置する方法があるのではないかと思います。

それらを[Global]セクションの下部に配置するだけでは機能しません。

ご提案ありがとうございます。

3
Francesco Abeni

試行錯誤の末、includeディレクティブを安全に使用して、include settings :-)

追加の/etc/php5/fpm/common.confファイルを作成しました。

user = $pool
group = $pool
listen.owner = $pool
listen.group = $pool
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 30s
chdir = /var/www/$pool

そして今、私のすべてのプールはこれと同じくらい単純にすることができます:

[www]
listen = 127.0.0.1:9001
include = /etc/php5/fpm/common.conf

[www2]
listen = 127.0.0.1:9002
include = /etc/php5/fpm/common.conf

その他の注意事項:

  • はい、fpmプロセスの現在のパスはpool.dフォルダーではないため、共通ファイルへのフルパスを指定する必要があります

  • はい、すべての補間が行われるため、実行時に$poolwwwまたはwww2になります

これが他の誰かにも役立つことを願っています。

8
Francesco Abeni