无法更改 php.ini 中的 max_input_vars 限制

Agr*_*est 3 php

我需要更改 PHP max_input_vars 变量,但在更改 php.ini 并重新启动服务器后,phpinfo 始终显示旧值。这就是我所做的:

在 phpinfo() 我有

...
Loaded Configuration File /etc/php.ini
...
max_input_vars  1000
Run Code Online (Sandbox Code Playgroud)

从服务器 CL 我编辑了 /etc/php.ini 并取消了 max_input_vars 行的注释,它看起来像这样:

...
max_input_vars = 5000
...
Run Code Online (Sandbox Code Playgroud)

更改后并重新启动网络服务器

systemctl restart httpd
Run Code Online (Sandbox Code Playgroud)

phpinfo 仍然显示 max_input_vars 为 1000 看起来 php 使用其他一些 php.ini 或值被覆盖,因为与 max_execution_time 等其他设置是相同的。

如果我做错了?phpinfo 显示的配置文件是否可能与使用的配置文件不同?

phpinfo 输出:

phpinfo 输出

fyr*_*rye 5

当您使用PHP-FPM时,您需要检查它的覆盖配置,通常在/etc/php-fpm/*.conf.

php_admin_value[max_input_vars] = XXX
Run Code Online (Sandbox Code Playgroud)

验证没有影响您的设置的覆盖后,重新启动 php-fpm 服务,并且作为最佳实践也是 Apache。

systemctl restart php-fpm httpd
Run Code Online (Sandbox Code Playgroud)

需要重新启动 PHP-FPM 服务,因为 Apache 会将请求传递到从 PHP-FPM 服务加载到内存中的正在运行的 PHP 实例。由于 PHP 已由 PHP-FPM 加载到内存中,因此需要重新启动 PHP-FPM 服务才能应用 PHP 配置更改。

PHP-FPM 之前的 Apache 通常依赖于使用 Apache 启动 PHP 进程mod_php,因此需要重新启动 Apache 服务才能立即应用配置更改,或者直到mod_php重新加载 PHP 实例为止。


根据您的配置,您应该添加额外的 PHP 配置设置而/etc/php.d/zzz-custom.ini不是/etc/php.ini. PHP 将按字母顺序加载配置文件,导致zzz-custom.ini文件最后加载并用作 PHP 设置的最终值。
使用该/etc/php.d/zzz-custom.ini文件还可以防止丢失自定义 php.ini 设置以及在更新 PHP 版本时需要对默认/etc/php.ini文件进行大量更改。
但是,/etc/php-fpm/*.conf设置将优先于任何/etc/php.d/*.ini配置。