原始配置位于/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后重复的任务(此外配置是在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中加载了所有池配置文件,所以wwwmyapp的值将在www(在同一个www池中)之后读取并且应该覆盖第一个值.
>它似乎在几个测试中工作并且没有报告错误,但它是否会一直有效,并且对于所有值?
>我们应该直接覆盖配置文件吗?
无法在任何文档中找到答案,即使在PHP.net上也是如此.
分析PHP7.0-fpm的源代码,更具体地说是fpm-conf.c,看起来如此
>首先读取主配置文件PHP-fpm.conf [fpm_conf_load_ini_file()],
>按顺序读取所有include指令,通过glob()提供文件列表,
>每个文件都由相同的fpm_conf_load_ini_file()解析,
>文件中的条目会覆盖以前设定的任何值,
>任何新的include都会对包含处理函数进行递归调用,并且
>默认情况下,glob()函数对名称进行排序(没有GLOB_NOSORT选项)
因此,我们可以假设 – 至少在此版本中,但考虑到当前代码,这不太可能很快改变 – 按字母顺序排列pool.d目录配置文件是安全的;之前记录的任何值都被读后的同名条目覆盖.
我们有一个干净的方法来处理PHP-fpm的配置文件,保持分发的配置文件不变,并添加名称按字母顺序大于打包的自定义文件,其中包含几个必须更改的选项.