先说结论:
(1)php-fpm.conf(或者其他conf文件)中的配置优先级高于php.ini,即在php服务运行时,php-fpm的配置会覆盖php.ini中的相同的配置。
但是: disable_functions 或者 disable_classes 在 php.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()得到的配置信息,就是当前服务的信息。