Якщо ви створюєте або керуєте сайтом на WordPress і раптом зіткнулися з цією помилкою:
“Попередження: Max Input Vars limit reached”
або
“Збільшити max_input_vars до більшого значення”
…це означає, що ваш сервер блокує обробку PHP занадто великої кількості полів вводу – це часто спостерігається при збереженні великих меню, конструкторів сторінок (наприклад, Elementor або WPBakery) або при відправленні форм.
У цій розширеній статті ми розглянемо цю проблему:
max_input_vars – це директива PHP, яка обмежує кількість вхідних змінних, які PHP може приймати (через POST, GET і REQUEST). Це захищає сервер від атак на хешування, але також впливає на легітимні операції в CMS-платформах.
Значення за замовчуванням:
Якщо ви перевищуєте цей ліміт (наприклад, зберігаєте меню WordPress з 1000 елементів), PHP обриває введення, і WordPress мовчки не зберігає всі зміни.
Це найчистіший спосіб змінити max_input_vars, якщо ви використовуєте власний сервер:
Крок 1: Знайдіть або створіть файл php.ini (залежить від сервера):
Замініть 8.1 на вашу версію PHP.
Крок 2: Знайдіть і відредагуйте директиву:
Крок 3: Перезапустіть веб-сервер:
або
Якщо у вас немає доступу до php.ini, спробуйте відредагувати .htaccess в корені вашої установки WordPress:
⚠️ Це працює тільки якщо увімкнено mod_php. Деякі хости використовують PHP-FPM, де цей метод не працює.
WordPress не підтримує перевизначення max_input_vars, але в деяких конфігураціях це може спрацювати:
Помістіть його над рядком з написом:
Якщо ви використовуєте віртуальний хостинг з cPanel:
✅ Працює миттєво - перезапуск не потрібен.
Створіть або відредагуйте .user.ini у вашій кореневій папці WordPress:
Потім перезапустіть PHP (або зачекайте 5 хвилин, якщо хост застосує зміни автоматично).
NGINX не використовує .htaccess, тому налаштовуйте PHP через пул FPM або php.ini.
Відредагуйте файл /etc/php/8.1/fpm/php.ini:
Потім перезапустіть:
Створіть файл phpinfo.php у корені WordPress:
Доступ через браузер: https://yourdomain.com/phpinfo.php
Знайдіть max_input_vars і переконайтеся, що він оновлений.
не забудьте видалити файл після цього - він розкриває конфіденційну інформацію сервера.
Рекомендація | Причина |
---|---|
Не встановлюйте max_input_vars рівним 999999 | Може призвести до DoS-уразливостей |
Дотримуйтесь значення 3000-5000 | Достатньо для великих меню/побудовників сторінок |
Слідкуйте за лімітами пам'яті | Великі вхідні змінні = більше використання пам'яті |
Використовуйте phpinfo() або ini_get() для налагодження | Уникайте здогадок |
Іноді ця проблема супроводжується перевищенням інших лімітів:
Вони також можуть бути розміщені у файлах php.ini, .htaccess або .user.ini.
Розуміння та виправлення помилки max_input_vars у WordPress.Помилка max_input_vars є малопомітною, але потенційно руйнівною проблемою в WordPress, яка часто залишається непоміченою, доки не станеться щось критичне. Ця директива конфігурації PHP контролює максимальну кількість вхідних змінних (наприклад, полів форм або пунктів меню), які ваш сервер буде обробляти в одному запиті. Якщо цей ліміт занадто низький, він може непомітно перешкоджати частинам вашого веб-сайту зберігати зміни належним чином, особливо в складних середовищах.
Де з'являється проблема
Ця помилка зазвичай з'являється в наступних сценаріях:
Великі або вкладені меню WordPress: При створенні детальних структур меню може зберегтися лише частина меню, або зміни можуть зникнути після збереження.