AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 805647
Accepted
Déjà vu
Déjà vu
Asked: 2016-09-28 08:02:13 +0800 CST2016-09-28 08:02:13 +0800 CST 2016-09-28 08:02:13 +0800 CST

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

  • 772

必须自定义新服务器的 php-fpm 池配置,我想知道是否有可能/允许/建议有一个新的池文件,其名称按字母顺序排列在原始文件之后,该文件仅具有覆盖初始配置的值。

原始配置在/etc/php/7.0/fpm/pool.dnamed中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

in pool.d, 文件列表

www.conf
wwwmyapp.conf

因为在php-fpm.conf所有池 conf 文件中加载,值wwwmyapp将在www( 在同一个www池中) 之后读取,并且应该覆盖第一个值。

  • 它似乎在一些测试中有效并且没有报告错误,但它会一直有效,并且适用于所有值吗?
  • 我们应该直接覆盖配置文件吗?

即使在 php.net 上,也无法在任何文档中找到答案。

configuration php-fpm pool
  • 3 3 个回答
  • 10326 Views

3 个回答

  • Voted
  1. Best Answer
    Déjà vu
    2016-10-02T08:08:53+08:002016-10-02T08:08:53+08:00

    无法从其他来源找到“官方”确认,但经过一些研究,这里有一些结果:

    分析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,保持分发文件不变,并添加名称按字母顺序大于打包文件的自定义文件,其中包含必须更改的少数选项。

    • 20
  2. WhipsterCZ
    2018-04-17T03:19:02+08:002018-04-17T03:19:02+08:00

    如果你有一些像 php-overrides.ini 这样的文件,你应该把它复制到

    /etc/php/7.0/fpm/conf.d/99-overrides.ini

    99前缀是由于执行顺序

    • 3
  3. JesusIniesta
    2021-10-09T02:00:31+08:002021-10-09T02:00:31+08:00

    .conf通过自定义文件覆盖 [www] 池值:

    这是可能的,@break-not-so-bad关于如何加载配置文件的解释很棒,我建议你先阅读它。

    但绝对值得强调配置文件命名的重要性(因为它可能很棘手):

    正如@hroj3e 解释和@istranger 在上面的评论中举例说明的那样

    • 如果默认池名称是 www,则覆盖它的唯一方法是使用 pool.d 文件名,例如 wwwsomething 或以 x、y 或 z 开头 - @hroj3e
    • 命名文件z-www-overrides.conf,它是覆盖[www]池选项 - @istranger

    一个例子:

    创建文件/etc/php/7.0/fpm/conf.d/z-www-overrides.conf将覆盖以下设置php-fpm.conf:

    [www]
    user myapp
    group myapp
    pm.max_children 8
    
    • 1

相关问题

  • 小型企业的服务器虚拟化/RAID 配置

  • httpd.conf 用于不区分大小写的文件服务

  • Windows Server 2003 DNS 添加的 CNAME 不起作用

  • 我应该使用什么策略在 linux 上安装 smtp 服务器?用于多线程服务

  • 为什么我的站点在配置为直通身份验证时使用 IUSR 帐户?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve