不得不自定义一个新的服务器的php-fpm池configuration,我想知道是否有可能/允许/build议有一个新的池文件,这个文件名是在原始文件后面按字母顺序排列的,只有重写初始configuration的值。
原始configuration位于/etc/php/7.0/fpm/pool.d名称为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后重复的任务(此外,configuration是在7.0path,这是令人担忧的)。
而不是修改原始文件,我想保持不变,并添加另一个,说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池中)之后被读取,并且应该覆盖第一个值。
在任何文档中找不到答案,即使在php.net上。
找不到来自其他来源的“官方”确认,但在做一些研究之后,这是一些结果:
分析php7.0-fpm的源代码,更具体地说是fpm-conf.c ,看起来如此
php-fpm.conf [ fpm_conf_load_ini_file ()], include指令都是按顺序读取的,由于glob ()给出了一个文件列表, include将有一个recursion调用包含处理函数,和 GLOB_NOSORT名称进行sorting,默认情况下(没有GLOB_NOSORT选项) 因此,我们可以假定 – 至less在这个版本中,考虑到现在的代码,这不太可能改变 – 按字母顺序安排pool.d目录configuration文件是安全的; 任何先前logging的值将被同名的条目覆盖。
我们有一个干净的方式来处理php-fpmconfiguration文件,保持configuration文件不变,并添加名称按字母顺序排列的大于打包文件名的自定义文件,其中包含必须更改的几个选项。