Справочник

Input variables exceeded 1000: как увеличить max_input_vars

Форма прислала больше полей, чем разрешает настройка max_input_vars: по умолчанию 1000. Поля сверх лимита PHP отбрасывает, поэтому большая форма сохраняется не целиком. Лимит поднимают в php.ini.

≈ 4 мин чтения
Содержание 8

Как выглядит ошибка

Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini.

Это предупреждение PHP (PHP Warning). Для сайта на nginx оно попадает в журнал nginx в строку со словами FastCGI sent in stderr и PHP message:. Посмотреть журнал:

sudo tail -n 30 /var/log/nginx/error.log

На странице ошибки не видно: форма сохраняется, но без части полей. Например, в большой форме настроек сбрасываются нижние поля.

Почему так

max_input_vars задаёт, сколько переменных PHP примет из запроса. Лимит действует отдельно для полей формы, параметров в адресе и cookie. В Ubuntu строка в php.ini закомментирована, и действует значение по умолчанию — 1000.

Каждое поле формы — отдельная переменная, даже если поля собраны в список: десять полей item[] — это десять переменных. Поэтому в лимит упираются формы с таблицами и длинными списками.

Как поднять лимит

Команды вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

  1. Откройте файл настроек PHP для сайта: sudo nano /etc/php/8.3/fpm/php.ini. Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — наберите пароль и нажмите Enter.
  2. Нажмите Ctrl+W, введите max_input_vars и нажмите Enter — курсор встанет на строку с этой настройкой. Если в начале строки стоит точка с запятой, удалите её: такая строка не действует.
  3. Впишите новое значение: max_input_vars = 3000. 3000 — пример: возьмите с запасом к числу полей вашей формы.
  4. Сохраните файл: Ctrl+O, Enter, затем Ctrl+X.
  5. Перезапустите PHP-FPM: sudo systemctl restart php8.3-fpm. Если команда ничего не ответила, PHP перезапущен.
  6. Проверьте значение: php-fpm8.3 -i | grep max_input_vars.

В ответе последней команды должно быть max_input_vars => 3000 => 3000. После этого сохраните форму ещё раз: то, что отбросилось раньше, само не вернётся. Команды — для PHP 8.3 из Ubuntu 24.04. В Ubuntu 26.04 стоит PHP 8.5: в путях и командах вместо 8.3 пишите 8.5. Какая версия у вас, покажет ls /etc/php/.

Только для одного сайта

Только для одного сайта — строкой php_admin_value[max_input_vars] = 3000 в пуле PHP-FPM или строкой max_input_vars = 3000 в файле .user.ini: как это сделать.

Функция ini_set() этот лимит не меняет: PHP разбирает форму до того, как запустится код сайта.

На виртуальном хостинге

max_input_vars меняют в панели хостинга, в разделе с настройками PHP. Если такой строки нет, спросите поддержку.

Ошибки рядом

Что видитеЧто делать
POST Content-Length of … bytes exceeds the limitформа больше post_max_size
Maximum execution time of … seconds exceededскрипт работал слишком долго
другая ошибка PHPнайдите её в списке

Источники

Сверено 14 октября 2026 года.

Что почитать дальше