Se state costruendo o gestendo un sito WordPress e improvvisamente incontrate l’errore:
“Attenzione: Raggiunto il limite massimo di input vars”
oppure
“Aumenta max_input_vars a un valore più alto”
… significa che il vostro server sta bloccando il PHP nell’elaborazione di troppi campi di input – spesso si verifica quando si salvano menu di grandi dimensioni, costruttori di pagine (come Elementor o WPBakery) o invii di moduli.
In questo articolo avanzato tratteremo:
max_input_vars è una direttiva PHP che limita il numero di variabili di input che PHP può accettare (tramite POST, GET e REQUEST). Questo protegge il server da attacchi hashing denial-of-service, ma influisce anche sulle operazioni legittime nelle piattaforme CMS.
Valore predefinito:
Se si supera questo limite (ad esempio salvando un menu di WordPress con 1000 voci), PHP interrompe l’input e WordPress non riesce a salvare tutte le modifiche.
Questo è il metodo più pulito per modificare le max_input_vars se gestite il vostro server:
Passo 1: Individuare o creare un file php.ini (dipende dal server):
Sostituire 8.1 con la propria versione di PHP.
Passo 2: trovare e modificare la direttiva
Passo 3: Riavviare il server web:
oppure
Se non riuscite ad accedere a php.ini, provate a modificare .htaccess nella root della vostra installazione di WordPress:
<IfModule mod_php.c>
php_value max_input_vars 3000
</IfModule>
⚠️ Questo funziona solo se mod_php è abilitato. Alcuni host utilizzano invece PHP-FPM, dove questo metodo non funziona.
WordPress non supporta in modo nativo la sovrascrittura di max_input_vars, ma in alcune configurazioni l’aggiunta di questo potrebbe funzionare:
Posizionarlo sopra la riga che dice:
Se si utilizza un hosting condiviso con cPanel:
funziona immediatamente, senza bisogno di riavviare.
Creare o modificare .user.ini nella cartella principale di WordPress:
Quindi riavviare PHP (o attendere 5 minuti se l’host applica le modifiche automaticamente).
NGINX non usa .htaccess, quindi configurare PHP tramite il pool FPM o php.ini.
Modificare /etc/php/8.1/fpm/php.ini:
Quindi riavviare:
Creare un file phpinfo.php nella root di WordPress:
Accedere al file tramite browser: https://yourdomain.com/phpinfo.php
Cercare max_input_vars e verificare che sia aggiornato.
non dimenticate di cancellare il file: espone informazioni sensibili sul server.
Raccomandazioni | Motivo |
---|---|
Non impostare max_input_vars a 999999 | Può portare a vulnerabilità DoS |
Limitarsi a 3000-5000 | Abbastanza per i grandi menu/costruttori di pagine |
Monitorare i limiti di memoria | Grandi vars di input = maggiore utilizzo di memoria |
Usare phpinfo() o ini_get() per il debug | Evitare le congetture |
A volte questo problema è accompagnato da altri limiti:
Questi possono anche essere inseriti in php.ini, .htaccess o .user.ini.
L’errore max_input_vars è facile da ignorare, ma può interrompere silenziosamente funzioni critiche di WordPress. Aumentando questo limite con il metodo giusto per il vostro ambiente, garantirete la stabilità di menu complessi, contenuti multilingue e costruttori di pagine drag-and-drop.