在编译PHP时启用配置选项with-config-file-scan-dir
会导致性能问题吗?
具体来说,这是否告诉PHP二进制文件在每次加载PHP模块时都要进行文件系统扫描以响应请求?
我想它确实如此,并且拥有多个ini文件会在每个请求上导致更多的磁盘访问。我想通过将所有这些单独的指令放在同一个php.ini文件中可以减轻这种情况。
有人可以确认或否认吗?
答案 0 :(得分:2)
布赖恩,
CLI /(快速)CGI版本每次启动时都会加载.ini文件;但是,当服务器启动时,apache模块会将它们加载到内存中一次。您可以通过更改任何.ini文件中的值并运行CLI二进制文件来测试此行为。请注意,您需要重新启动服务器才能看到服务器模块版本中的更改。
答案 1 :(得分:1)
答案 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都使用(或可以使用)类似的方法来加载配置。