我如何永久增加max_input_vars? php.ini方法会定期被覆盖

问题描述 投票:1回答:1

我管理一个VPS,在这里我想增加VPS上托管的一个WordPress网站的max_input_vars。为此,我转到/var/www/vhosts/system/example.com/etc/,然后将以下内容输入到随附的php.ini文件中:

max_input_vars =4000

尽管此方法有效,但文件会定期被覆盖,因此我丢失了修改。

是否有另一种方法可以实现此修改,而不必担心自动覆盖php.ini

我尝试了以下操作,但所有操作均导致该网站下线:

。htaccess

php_value max_input_vars 4000

wp-config

@ini_set( 'max_input_vars' , 4000 );

更新:09/01/2020

我也尝试过在php_admin_flag max_input_vars On文件中输入/etc/apache2/apache2.conf,然后在max_input_vars =4000文件中输入/var/www/vhosts/system/example.com/etc/php.ini

[不幸的是,max_input_vars =4000仍然被覆盖,默认设置为1000。此外,此方法会产生以下通知;在服务器内:

enter image description here

我可以在这里做错什么吗?

php debian vps plesk
1个回答
0
投票

因此,max_input_varsmax_input_vars,这意味着可以在php.ini,.htaccess,httpd.conf或.user.ini中进行设置(自PHP 5.3起>)。

PHP只有一种防止本地指令覆盖的解决方案(PHP中的本地指令覆盖了主指令,因此它会自下而上冒出气泡

),那就是在指令上设置一个PHP_INI_PERDIR,从而防止主配置被本地覆盖。为此,取决于您使用的PHP SAPI。

mod_php(Apache httpd)

您可以使用httpd配置中的PHP_INI_PERDIR在apache配置(即虚拟主机文件或httpd.conf)中设置admin_flag。这将防止从php.ini中加载的值被.htaccess或admin_flag覆盖。

php-fpm(fastcgi)

您可以使用语法php_admin_flag在您的php-fpm配置或单个池配置中设置php_admin_flag max_input_vars On。>

N.B。

但是,在继续操作之前,请注意不要将此指令设置得太高,因为它可能导致PHP中已知的拒绝服务

攻击。从手册中...

此指令的使用减轻了使用哈希冲突的拒绝服务攻击的可能性。如果输入变量多于该指令指定的数量,则发出E_WARNING,并从请求中截断更多的输入变量。

© www.soinside.com 2019 - 2024. All rights reserved.