【问题标题】:php.ini config file scan performancephp.ini 配置文件扫描性能
【发布时间】:2009-07-07 00:50:11
【问题描述】:

在编译 PHP 时启用配置选项with-config-file-scan-dir 会导致性能问题吗?

具体来说,这是否会告诉 PHP 二进制文件在每次加载 PHP 模块以响应请求时进行文件系统扫描?

我想确实如此,而且拥有多个 ini 文件只会导致对每个请求的磁盘访问多一点。我想这可以通过将所有这些单独的指令放在同一个 php.ini 文件中来缓解。

谁能证实或否认这一点?

【问题讨论】:

    标签: php apache


    【解决方案1】:

    布莱恩,

    CLI/(Fast)CGI 版本每次启动时都会加载 .ini 文件;但是,apache 模块会在服务器启动时将它们加载到内存中。您可以通过更改任何 .ini 文件中的值并运行 CLI 二进制文件来测试此行为。请注意,您需要重新启动服务器才能看到服务器模块版本的更改。

    【讨论】:

      【解决方案2】:

      不,如果我理解正确,您将为它提供一个目录,当 PHP 配置加载时(在 apache 启动时)PHP 会将目录中的每个文件作为配置文件读取。

      一些信息here 和更多here(更好的链接)

      【讨论】:

      • 谢谢 - 这是有道理的。我认为它会在每个 HTTP 请求上加载这些 conf 文件。没有意识到它在 Apache 启动时加载了它们。
      【解决方案3】:

      这是否告诉 PHP 二进制文件在每次加载 PHP 模块以响应请求时进行文件系统扫描?

      没有。当您编译@​​987654321@ 时,您所做的只是告诉 PHP 将此目录中的所有文件合并到其配置中。这是系统配置中经常使用的一种方法,其中包管理系统需要能够从应用程序中添加/删除特定于包的配置,而不会破坏最终用户修改的配置文件。这里的一个例子是,在基于 Debian 的系统上,当您 apt-get install php-pgsql 时,它将创建一个 /etc/php/conf.d/pgsql.ini,其中将包含 extension=pgsql.so 行以及任何特定于模块的选项。

      在编译 PHP 时启用配置选项 with-config-file-scan-dir 会导致性能问题吗?

      不是真的。实际上,它只是该特定目录中所有 .ini 文件的串联。

      我可以告诉你,Debian、CentOS 和 Zend Server 默认都使用这个选项。

      此外,就在我的脑海中,*nix RC 文件、Apache2、Courier、Emacs 和 Cron 都使用(或可以使用)类似的方法来加载配置。

      【讨论】:

        猜你喜欢
        • 2015-01-13
        • 1970-01-01
        • 2014-04-27
        • 1970-01-01
        • 1970-01-01
        • 2019-01-11
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        相关资源
        最近更新 更多