2009-07-07 114 views
1

编译PHP导致性能问题时,是否启用配置选项with-config-file-scan-dir的php.ini配置文件扫描性能

具体来说,这是否告诉PHP程序做一个文件系统扫描每一个PHP模块加载到响应请求的时间?

我想是这样,而且有多个INI文件会导致在每次请求只是一点点更多的磁盘访问。我想这可以通过将所有这些单独的指令放入相同的php.ini文件中来缓解。

任何人都可以确认或否认这一点?

回答

1

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

一些信息herehere(更好的链路)

+0

谢谢 - 这是有道理的。我认为它会在每个HTTP请求上加载这些conf文件。没有意识到它在Apache启动时加载它们。 – 2009-07-08 15:29:34

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行以及任何模块特定的选项。

在编译PHP时是否启用配置选项与配置文件扫描目录导致性能问题?

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

我可以告诉你,Debian的,CentOS的,和Zend Server的所有默认情况下使用此选项。

而且,就在我的头,* nix的RC文件的Apache2,快递,Emacs和克龙都使用(或可以使用)类似的方法来加载配置的顶部。

2

布莱恩,

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