Как я могу навсегда увеличить max_input_vars? Подход php .ini периодически переопределяется - PullRequest
1 голос
/ 07 января 2020

Я управляю VPS, где я хотел бы увеличить max_input_vars для одного из сайтов WordPress, который размещен на VPS. Чтобы сделать это, я направился к /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

Могу я что-то здесь не так сделать?

1 Ответ

0 голосов
/ 07 января 2020

Итак, max_input_vars равно PHP_INI_PERDIR, что означает, что его можно установить в php .ini, .htaccess, httpd.conf или .user.ini ( , начиная с PHP 5.3 ).

PHP имеет только одно решение для предотвращения переопределения локальных директив ( локальные директивы переопределяют главные директивы в PHP, поэтому он пузырится снизу up ), и это должно установить admin_flag в директиве, тем самым предотвращая локальное изменение конфигурации мастера. Для этого будет зависеть, какой PHP SAPI вы используете.

mod_ php (Apache httpd)

Вы можете установить php_admin_flag в вашем apache config (т.е. файл virtualhost или httpd.conf), используя php_admin_flag max_input_vars On в вашей конфигурации httpd. Это предотвратит переопределение загруженного значения из php .ini .htaccess или ini_set().

php -fpm (fastcgi)

Вы можете установить php_admin_flag в вашей конфигурации php -fpm или отдельных конфигурациях пула с синтаксисом php_admin_flag[max_input_vars] = On.

NB

Однако, прежде чем продолжить, примите во внимание важность не устанавливайте эту директиву слишком высокой, поскольку это может вызвать известную Отказ в обслуживании атаку в PHP. Из руководства ...

Использование этой директивы снижает вероятность атак типа "отказ в обслуживании", которые используют коллизии sh. Если входных переменных больше, чем указано в этой директиве, выдается E_WARNING , и дополнительные входные переменные усекаются из запроса.

...