php.ini配置文件扫描性能

时间:2009-07-07 00:50:12

标签: php apache

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

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

我想它确实如此,并且拥有多个ini文件会在每个请求上导致更多的磁盘访问。我想通过将所有这些单独的指令放在同一个php.ini文件中可以减轻这种情况。

有人可以确认或否认吗?

3 个答案:

答案 0 :(得分:2)

布赖恩,

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

  

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

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

  

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

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

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

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