我管理一个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。此外,此方法会产生以下通知;在服务器内:
我可以在这里做错什么吗?
因此,max_input_vars
为max_input_vars
,这意味着可以在php.ini,.htaccess,httpd.conf或.user.ini中进行设置(自PHP 5.3起>)。
PHP只有一种防止本地指令覆盖的解决方案(PHP中的本地指令覆盖了主指令,因此它会自下而上冒出气泡
),那就是在指令上设置一个PHP_INI_PERDIR
,从而防止主配置被本地覆盖。为此,取决于您使用的PHP SAPI。您可以使用httpd配置中的PHP_INI_PERDIR
在apache配置(即虚拟主机文件或httpd.conf)中设置admin_flag
。这将防止从php.ini中加载的值被.htaccess或admin_flag
覆盖。
您可以使用语法php_admin_flag
在您的php-fpm配置或单个池配置中设置php_admin_flag max_input_vars On
。>
但是,在继续操作之前,请注意不要将此指令设置得太高,因为它可能导致PHP中已知的拒绝服务
攻击。从手册中...此指令的使用减轻了使用哈希冲突的拒绝服务攻击的可能性。如果输入变量多于该指令指定的数量,则发出E_WARNING,并从请求中截断更多的输入变量。