php.ini和php-fpm.conf、ini_set,对php服务的影响优先级

先说结论:

(1)php-fpm.conf(或者其他conf文件)中的配置优先级高于php.ini,即在php服务运行时,php-fpm的配置会覆盖php.ini中的相同的配置

但是: disable_functions 或者 disable_classesphp.ini 之中定义的值不会被覆盖掉,但是会将新的设置附加在原有值的后面

(2)php-fpm.conf(或者其他conf文件)中使用 php_admin_value 或者 php_admin_flag 定义的值,不能被 PHP 代码中的ini_set() 覆盖

(3) ini_set() 可以修改php.ini定义好的配置,如运行内存限制值

即在大部分配置上,优先级是:php-fpm.conf > ini_set( ) > php.ini

如php运行内存限制,假设在php.ini中设置memory_limit = 256M,而在php-fpm配置中设置php_admin_value[memory_limit] = 64M,那么phpinfo()显示的内存限制会是64M,256M的配置是没有生效的。

更新php.ini或者php-fpm.conf后要重启相应服务。

PS:phpinfo()得到的配置信息,就是当前服务的信息。