配置 – 用另一个文件覆盖php-fpm池配置值

前端之家收集整理的这篇文章主要介绍了配置 – 用另一个文件覆盖php-fpm池配置值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
必须自定义新服务器的PHP-fpm池配置,我想知道是否有可能/允许/建议有一个新的池文件,该名称在原始文件之后按字母顺序排列,其中只有值覆盖初始配置.

原始配置位于/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的配置文件,保持分发的配置文件不变,并添加名称按字母顺序大于打包的自定义文件,其中包含几个必须更改的选项.

猜你在找的PHP相关文章