Input variables exceeded 1000: как увеличить max_input_vars
Форма прислала больше полей, чем разрешает настройка max_input_vars: по умолчанию 1000. Поля сверх лимита PHP отбрасывает, поэтому большая форма сохраняется не целиком. Лимит поднимают в php.ini.
Содержание 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 (как подключиться) и набирайте их в том же окне.
- Откройте файл настроек PHP для сайта:
sudo nano /etc/php/8.3/fpm/php.ini. Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — наберите пароль и нажмите Enter. - Нажмите Ctrl+W, введите
max_input_varsи нажмите Enter — курсор встанет на строку с этой настройкой. Если в начале строки стоит точка с запятой, удалите её: такая строка не действует. - Впишите новое значение:
max_input_vars = 3000. 3000 — пример: возьмите с запасом к числу полей вашей формы. - Сохраните файл: Ctrl+O, Enter, затем Ctrl+X.
- Перезапустите PHP-FPM:
sudo systemctl restart php8.3-fpm. Если команда ничего не ответила, PHP перезапущен. - Проверьте значение:
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 | найдите её в списке |
Источники
- Исходный код PHP 8.3.6: php_variables.c — текст Input variables exceeded: поля сверх max_input_vars PHP не принимает.
- Справка PHP: max_input_vars — лимит действует отдельно для $_GET, $_POST и $_COOKIE; лишние переменные PHP отбрасывает и выдаёт E_WARNING.
- Справка PHP: список настроек — значения по умолчанию и где можно менять каждую настройку: INI_ALL, INI_PERDIR или INI_SYSTEM.
- Файл php.ini-production из PHP 8.3.6 — значения для рабочих серверов: display_errors Off, log_errors On, max_execution_time 30, post_max_size 8M, upload_max_filesize 2M.
Сверено 14 октября 2026 года.
Что почитать дальше
- Настройки PHPглавные настройки и где их задают.
- upload_max_filesize и post_max_sizeлимиты на размер формы и файлов.
- Настройки PHP для одного сайтаотдельный пул PHP-FPM и .user.ini.