Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code : Skills Commencer
Sections
Administration

Comment corriger l’erreur de limite PHP Max Input Vars dans WordPress

L’erreur de limite PHP Max Input Vars est l’un des problèmes côté serveur les plus courants — mais souvent mal compris — que les administrateurs WordPress rencontrent. Elle tronque silencieusement les soumissions de formulaires, casse la fonctionnalité des plugins et provoque un traitement incomplet des données sans toujours afficher un message d’erreur évident. Si vous avez eu du mal avec des paramètres manquants, des données de formulaire corrompues ou des plugins WordPress qui se comportent mal, ce guide vous expliquera tout ce que vous devez savoir : ce qui cause l’erreur, comment la diagnostiquer et exactement comment la corriger en utilisant plusieurs méthodes éprouvées.

Qu’est-ce que la limite PHP Max Input Vars ?

La directive max_input_vars est un paramètre de configuration PHP qui contrôle le nombre maximum de variables d’entrée que votre serveur acceptera dans une seule requête. Cela s’applique aux trois méthodes d’entrée :

  • Les requêtes GET (chaînes de requête URL)
  • Les requêtes POST (soumissions de formulaires)
  • Les données COOKIE

La valeur par défaut est généralement 1000 variables par requête. Quand une soumission de formulaire — ou un plugin générant des champs dynamiques — dépasse ce seuil, PHP supprime silencieusement toutes les variables au-delà de la limite. Le résultat est un traitement des données incomplet, des pages de paramètres cassées et un comportement imprévisible des plugins.

Pourquoi cela se produit-il spécifiquement dans WordPress ?

WordPress est une plateforme hautement extensible. Les constructeurs de pages comme Elementor ou WPBakery, les plugins e-commerce complexes comme WooCommerce, les systèmes de menu avancés et les formulaires de contact multi-champs peuvent tous générer des centaines — parfois des milliers — de variables d’entrée dans une seule soumission. La limite par défaut de 1000 n’est tout simplement pas suffisante pour les installations WordPress modernes et riches en fonctionnalités.

> Les symptômes courants incluent : les éléments de menu WordPress disparaissent après l’enregistrement, les paramètres des plugins ne s’enregistrent pas correctement, les grands formulaires soumettent des données incomplètes et les options du personnalisateur de thème sont perdues.

Si vous exécutez WordPress sur un plan VPS Hosting, vous avez généralement un accès root complet pour résoudre ce problème au niveau du serveur — l’approche la plus fiable. Dans les environnements partagés, les méthodes alternatives couvertes ci-dessous s’appliqueront.

Étape 1 : Vérifiez votre limite max_input_vars actuelle

Avant d’apporter des modifications, confirmez votre configuration PHP actuelle. Le moyen le plus simple est de générer un fichier de sortie phpinfo().

Créer un fichier PHP Info

  1. Ouvrez un éditeur de texte brut (Notepad, VS Code, nano, etc.)
  2. Créez un nouveau fichier et ajoutez le code suivant :
<?php
phpinfo();
?>
  1. Enregistrez le fichier sous info.php
  2. Téléchargez-le dans le répertoire racine de votre serveur web (par exemple, /var/www/html/ ou public_html/)

Lire la sortie

Ouvrez votre navigateur et accédez à :

http://yourdomain.com/info.php

Utilisez Ctrl+F pour rechercher max_input_vars sur la page. Vous verrez deux colonnes : la valeur par défaut compilée et la valeur configurée localement. Notez ce qui est actuellement défini.

> ⚠️ Avertissement de sécurité : Supprimez info.php immédiatement après vérification. Ce fichier expose les détails sensibles de la configuration du serveur et ne doit jamais rester accessible au public sur un serveur de production.

Étape 2 : Augmenter la limite max_input_vars

Il existe trois méthodes principales pour augmenter la limite max_input_vars, chacune adaptée à différents niveaux d’accès au serveur. Choisissez la méthode qui correspond à votre environnement d’hébergement.

Méthode 1 : Éditer le fichier php.ini (Recommandé pour VPS et serveurs dédiés)

C’est la méthode la plus fiable et la plus autoritaire. Elle applique la modification au niveau du moteur PHP, ce qui en fait l’approche préférée pour les administrateurs ayant accès au niveau du serveur.

Localisez votre fichier php.ini. Les chemins courants incluent :

Version PHPApachePHP-FPM
PHP 7.4/etc/php/7.4/apache2/php.ini/etc/php/7.4/fpm/php.ini
PHP 8.1/etc/php/8.1/apache2/php.ini/etc/php/8.1/fpm/php.ini
PHP 8.2/etc/php/8.2/apache2/php.ini/etc/php/8.2/fpm/php.ini

Vous ne savez pas quelle version PHP vous utilisez ? Exécutez ceci dans votre terminal :

php -v

Éditer le fichier :

sudo nano /etc/php/8.1/apache2/php.ini

Recherchez la ligne max_input_vars. Elle peut être commentée avec un point-virgule :

; max_input_vars = 1000

Décommentez-la et mettez à jour la valeur :

max_input_vars = 3000

Une valeur de 3000 convient à la plupart des installations WordPress. Pour les configurations très complexes avec de grands menus ou des configurations WooCommerce étendues, vous pouvez envisager 5000.

Redémarrez votre serveur web pour appliquer les modifications :

Pour Apache :

sudo systemctl restart apache2

Pour Nginx avec PHP-FPM :

sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

Cette méthode est entièrement disponible sur les serveurs dédiés et la plupart des plans VPS non gérés, vous donnant un contrôle complet sur votre environnement PHP.

Méthode 2 : Éditer le fichier .htaccess (Pour l’hébergement partagé Apache)

Si vous êtes dans un environnement d’hébergement partagé ou n’avez pas accès direct à php.ini, le fichier .htaccess offre une alternative pratique — à condition que votre hébergeur permette aux directives PHP d’être remplacées au niveau du répertoire.

  1. Accédez au répertoire racine de votre installation WordPress (où wp-config.php se trouve)
  2. Ouvrez ou créez le fichier .htaccess
  3. Ajoutez la ligne suivante :
php_value max_input_vars 3000
  1. Enregistrez le fichier

Important : Cette méthode ne fonctionne que sur les serveurs ApacheAllowOverride est activé. Elle ne fonctionnera pas sur Nginx. Si vous recevez une erreur 500 Internal Server Error après l’enregistrement, votre hébergeur ne permet pas cette directive — supprimez la ligne et utilisez plutôt la méthode 3.

Si vous êtes sur un plan d’hébergement web partagé, contactez d’abord l’équipe d’assistance de votre hébergeur pour confirmer si les remplacements de directives PHP sont autorisés dans .htaccess.

Méthode 3 : Ajouter une directive à wp-config.php

Cette méthode utilise la fonction ini_set() de PHP directement dans le fichier de configuration de WordPress. C’est une solution largement utilisée pour les environnements où ni les modifications php.ini ni .htaccess ne sont disponibles.

  1. Ouvrez le fichier wp-config.php dans votre répertoire racine WordPress
  2. Ajoutez la ligne suivante avant le commentaire qui dit /* That's all, stop editing! Happy blogging. */ :
@ini_set('max_input_vars', 3000);
  1. Enregistrez le fichier

Limitations à connaître : Certains hébergeurs désactivent ini_set() pour des raisons de sécurité, ce qui signifie que cette méthode peut échouer silencieusement. De plus, l’opérateur de suppression d’erreur @ est utilisé ici pour éviter les avertissements si la fonction est restreinte — mais il masque également les défaillances. Après avoir appliqué cette modification, vérifiez toujours qu’elle a fonctionné en utilisant la méthode phpinfo() décrite à l’étape 1.

Méthode 4 : Utiliser un fichier php.ini ou .user.ini au niveau utilisateur

Sur de nombreux environnements d’hébergement partagé exécutant PHP-FPM, vous pouvez placer un fichier php.ini ou .user.ini personnalisé dans le répertoire racine de votre site web :

  1. Créez un nouveau fichier nommé .user.ini dans votre répertoire racine WordPress
  2. Ajoutez le contenu suivant :
max_input_vars = 3000
  1. Enregistrez et téléchargez le fichier

PHP-FPM analyse les fichiers .user.ini périodiquement (généralement toutes les 5 minutes par défaut, contrôlé par user_ini.cache_ttl). Les modifications peuvent ne pas prendre effet immédiatement — attendez quelques minutes avant de tester.

Étape 3 : Vérifier que les modifications ont pris effet

Après avoir appliqué la méthode choisie, il est essentiel de confirmer que la nouvelle limite est réellement active.

  1. Retournez à http://yourdomain.com/info.php dans votre navigateur (re-téléchargez le fichier si vous l’avez supprimé)
  2. Recherchez max_input_vars
  3. Confirmez que la colonne Local Value affiche maintenant 3000 (ou votre valeur choisie)

Si la valeur n’a pas changé, essayez ce qui suit :

  • Pour les modifications php.ini : Assurez-vous d’avoir modifié le fichier php.ini correct pour votre version PHP et SAPI (Apache vs. FPM). Vérifiez que le serveur web a été complètement redémarré.
  • Pour les modifications .htaccess : Vérifiez que AllowOverride All est défini dans la configuration du virtual host Apache.
  • Pour les modifications wp-config.php : Confirmez que ini_set() n’est pas désactivé dans votre configuration PHP en vérifiant la directive disable_functions dans phpinfo().

> 🔒 Souvenez-vous : Supprimez info.php de votre serveur dès que vous avez confirmé les modifications. Le laisser accessible présente un risque de sécurité.

Paramètres PHP supplémentaires à examiner

Pendant que vous avez votre php.ini ouvert, il vaut la peine d’auditer ces paramètres connexes qui affectent couramment les performances et la stabilité de WordPress :

DirectiveValeur recommandéeObjectif
max_input_vars3000–5000Limite de variables d’entrée
memory_limit256MMémoire PHP par script
upload_max_filesize64M–128MTaille maximale du fichier téléchargé
post_max_size128MTaille maximale des données POST
max_execution_time120–300Délai d’expiration du script en secondes
max_input_time120Délai d’expiration de l’analyse des entrées

Maintenir ces valeurs optimisées garantit que votre site WordPress gère les opérations complexes — importations volumineuses, téléchargements de médias et pages chargées de plugins — sans interruption.

Si vous gérez plusieurs sites WordPress et souhaitez une interface rationalisée pour la configuration PHP, envisagez un VPS avec cPanel, qui fournit un gestionnaire de configuration PHP graphique aux côtés du contrôle complet du serveur.

Choisir le bon environnement d’hébergement pour WordPress

La facilité avec laquelle vous pouvez résoudre les problèmes de configuration PHP comme celui-ci est directement liée à votre environnement d’hébergement. Voici un aperçu rapide :

  • Hébergement partagé : Contrôle PHP limité ; dépendre de .htaccess, .user.ini ou des tickets de support. Convient aux sites plus petits.
  • Hébergement VPS : Accès root complet ; modifier php.ini directement et redémarrer les services. Idéal pour les sites WordPress en croissance avec des écosystèmes de plugins complexes.
  • Serveurs dédiés : Contrôle et ressources maximaux ; aucune contention de ressources avec d’autres utilisateurs. Idéal pour les déploiements WordPress à fort trafic ou d’entreprise.

Pour la plupart des administrateurs WordPress sérieux, la mise à niveau vers un plan Hébergement VPS est le moyen le plus efficace pour éliminer les limitations de configuration du serveur et prendre la pleine propriété de votre environnement PHP.

Conclusion

L’erreur de limite PHP max_input_vars est un problème simple une fois que vous comprenez ce qui la cause — PHP applique simplement un plafond sur le nombre de variables d’entrée qu’il traitera par requête. La solution est tout aussi simple : augmentez la limite à une valeur qui correspond aux besoins de votre installation WordPress.

Voici un résumé rapide de vos options :

  1. Modifier php.ini — Meilleure méthode ; nécessite un accès au niveau du serveur (VPS/Dédié)
  2. Modifier .htaccess — Bonne solution de secours pour l’hébergement partagé Apache
  3. Modifier wp-config.php — Solution rapide ; peut être restreinte par certains hébergeurs
  4. Créer .user.ini — Utile dans les environnements d’hébergement partagé PHP-FPM

Vérifiez toujours vos modifications en utilisant phpinfo() et supprimez le fichier info après. Associez cette correction à un examen plus large de votre configuration PHP pour vous assurer que votre site WordPress fonctionne à ses performances optimales.

Pour un environnement d’hébergement qui vous donne le contrôle pour résoudre rapidement et en toute confiance des problèmes comme celui-ci — sans attendre les tickets d’assistance — explorez les Serveurs Dédiés et les plans VPS d’AlexHost conçus pour les déploiements WordPress critiques en termes de performance.