加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:58:00 所属栏目:PHP教程 来源:网络整理
导读:必须自定义新服务器的php-fpm池配置,我想知道是否有可能/允许/建议有一个新的池文件,该名称在原始文件之后按字母顺序排列,其中只有值覆盖初始配置. 原始配置位于/etc/php/7.0/fpm/pool.d,名为www.conf. 看来,根据与安装相关的页面,工程师直接修改原件(保存初
必须自定义新服务器的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的配置文件,保持分发的配置文件不变,并添加名称按字母顺序大于打包的自定义文件,其中包含几个必须更改的选项.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读