Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何永久增加最大输入变量?php.ini方法会定期被覆盖_Php_Debian_Vps_Plesk - Fatal编程技术网

如何永久增加最大输入变量?php.ini方法会定期被覆盖

如何永久增加最大输入变量?php.ini方法会定期被覆盖,php,debian,vps,plesk,Php,Debian,Vps,Plesk,我管理一个VPS,我想为VPS上托管的一个WordPress站点增加max\u input\u vars。为此,我转到/var/www/vhosts/system/example.com/etc/,并在附带的php.ini文件中输入以下内容: max\u input\u vars=4000 虽然这样做有效,但文件会定期被覆盖,因此我会丢失修改 有没有其他方法可以实现这种修改,而不用担心php.ini会被自动覆盖 我尝试了以下方法,但均导致网站脱机: .htaccess php\u值最大\u输入\

我管理一个VPS,我想为VPS上托管的一个WordPress站点增加
max\u input\u vars
。为此,我转到
/var/www/vhosts/system/example.com/etc/
,并在附带的
php.ini
文件中输入以下内容:

max\u input\u vars=4000

虽然这样做有效,但文件会定期被覆盖,因此我会丢失修改

有没有其他方法可以实现这种修改,而不用担心
php.ini
会被自动覆盖

我尝试了以下方法,但均导致网站脱机:

.htaccess

php\u值最大\u输入\u变量4000

wp配置

@ini\u集('max\u input\u vars',4000)

更新日期:2020年1月9日

我还尝试在
/etc/apache2/apache2.conf
文件中输入
php\u admin\u flag max\u input\u vars On
,然后在
/var/www/vhosts/system/example.com/etc/php.ini
文件中输入
max\u input\u vars=4000

不幸的是,
max\u input\u vars=4000
仍然会被覆盖,默认值1000会被重置。此外,这种方法产生以下通知:;在服务器中:

我可能在这里做错了什么吗?

那么,这意味着它可以在php.ini、.htaccess、httpd.conf或.user.ini中设置(从PHP5.3开始)

PHP只有一个防止本地指令重写的解决方案(PHP中的本地指令重写主指令,因此它会自下而上冒泡),那就是在指令上设置一个值,从而防止在本地重写主配置。要做到这一点,这将取决于您使用的是哪种PHP SAPI

mod_php(apachehttpd) 您可以使用httpd配置中的
php\u admin\u flag max\u input\u vars在apache配置(即virtualhost文件或httpd.conf)中设置
php\u admin\u flag
。这将防止从php.ini加载的值被.htaccess或
ini\u set()
覆盖

php fpm(fastcgi) 您可以使用语法
php\u admin\u标志[max\u input\u vars]=On
在php fpm配置或单个池配置中设置

请注意 但是,在继续之前,请注意不要将此指令设置得太高的重要性,因为它可能会在PHP中导致已知的拒绝服务攻击。从手册上

使用此指令可降低使用哈希冲突的拒绝服务攻击的可能性。如果输入变量多于本指令规定的数量,则发出E_警告,并从请求中截断更多的输入变量

这意味着它可以在php.ini、.htaccess、httpd.conf或.user.ini中设置(从PHP5.3开始)

PHP只有一个防止本地指令重写的解决方案(PHP中的本地指令重写主指令,因此它会自下而上冒泡),那就是在指令上设置一个值,从而防止在本地重写主配置。要做到这一点,这将取决于您使用的是哪种PHP SAPI

mod_php(apachehttpd) 您可以使用httpd配置中的
php\u admin\u flag max\u input\u vars在apache配置(即virtualhost文件或httpd.conf)中设置
php\u admin\u flag
。这将防止从php.ini加载的值被.htaccess或
ini\u set()
覆盖

php fpm(fastcgi) 您可以使用语法
php\u admin\u标志[max\u input\u vars]=On
在php fpm配置或单个池配置中设置

请注意 但是,在继续之前,请注意不要将此指令设置得太高的重要性,因为它可能会在PHP中导致已知的拒绝服务攻击。从手册上

使用此指令可降低使用哈希冲突的拒绝服务攻击的可能性。如果输入变量多于本指令规定的数量,则发出E_警告,并从请求中截断更多的输入变量


不能使用
ini\u set
设置
max\u input\u vars
。要使其在
.htaccess
中工作,您需要指定
AllowOverride选项
AllowOverride All
。我需要在哪里输入
AllowOverride选项
AllowOverride All
?您不能使用
ini\u set
设置
最大输入变量。要使其在
.htaccess
中工作,您需要指定
AllowOverride选项
AllowOverride All
。运行
apachectl-V
命令后,我需要在何处输入
AllowOverride选项
AllowOverride All
,服务器配置文件似乎位于
/etc/apache2/apache2.conf
。这是你在回答中提到的
apachehttpd
文件的Ubuntu变体吗?如果是这样,我是否只需要在这个
apache2.conf
文件的底部输入
php\u admin\u flag max\u input\u vars On
?此文件是否不会自动更新?这将如何防止
max\u input\u vars=4000
条目在
php.ini
文件中被覆盖,该文件位于
/var/www/vhosts/system/example.com/etc/
目录中?它只是停止更新
php.ini
文件吗?它不会停止更新php.ini。但它将阻止任何低于php.ini的级别重写php.ini。在PHP中是这样的(按照加载配置的顺序)1。硬编码PHP默认值2。php_admin_值配置3。php.ini 4。运行时用户级php ini或.htaccess类型配置5。运行时ini_集。所以如果你想阻止php