🚀 So beheben Sie den Fehler “PHP Max Input Vars Limit” in WordPress

Wenn Sie eine WordPress-Website erstellen oder verwalten und plötzlich der Fehler auftritt:

“Warning: Max Input Vars limit reached”
oder
“Erhöhen Sie max_input_vars auf einen höheren Wert.”

…das bedeutet, dass Ihr Server PHP daran hindert, zu viele Eingabefelder zu verarbeiten – häufig zu sehen beim Speichern großer Menüs, Page Builders (wie Elementor oder WPBakery) oder Formular-Eingaben.

In diesem Artikel für Fortgeschrittene werden wir uns damit befassen:

  • ✅ Was die max_input_vars-Direktive ist
  • 🧠 Wie sie WordPress beeinflusst
  • 🔧 Wie man sie mit verschiedenen Methoden behebt (php.ini, .htaccess, wp-config, Nginx, cPanel, etc.)
  • 🔐 Bewährte Praktiken und Sicherheitsüberlegungen

🔍 Was ist max_input_vars?

max_input_vars ist eine PHP-Direktive, die begrenzt , wie viele Eingabevariablen PHP (über POST, GET und REQUEST) akzeptieren kann. Dies schützt den Server vor Hashing-Denial-of-Service-Angriffen, hat aber auch Auswirkungen auf legitime Operationen in CMS-Plattformen.

Standardwert:

max_input_vars = 1000

Wenn Sie diese Grenze überschreiten (z. B. beim Speichern eines WordPress-Menüs mit 1000 Einträgen), schneidet PHP die Eingabe ab, und WordPress speichert nicht alle Änderungen.

📌 Wann Sie auf den Fehler stoßen

  • Speichern von großen Navigationsmenüs
  • Speichern von Seiten mit vielen Formularfeldern
  • Verwendung von Page Buildern mit komplexen Layouts
  • Plugins wie WPML, Elementor, WooCommerce

🛠️ Behebung des Fehlers: 6 bewährte Methoden

✅ 1. Ändern Sie die php.ini (Beste Methode, wenn Sie Root- oder VPS-Zugang haben)

Dies ist der sauberste Weg, max_input_vars zu ändern, wenn Sie Ihren eigenen Server betreiben:

Schritt 1: Suchen oder erstellen Sie eine php.ini-Datei (hängt vom Server ab):

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

Ersetzen Sie 8.1 durch Ihre PHP-Version.

Schritt 2: Suchen und bearbeiten Sie die Direktive:

max_input_vars = 3000

Schritt 3: Starten Sie Ihren Webserver neu:

sudo systemctl restart apache2

oder

sudo systemctl restart php8.2-fpm

✅ 2. .htaccess aktualisieren (für Apache-Benutzer mit Shared Hosting)

Wenn Sie nicht auf die php.ini zugreifen können, versuchen Sie, .htaccess im Stammverzeichnis Ihrer WordPress-Installation zu bearbeiten:

<IfModule mod_php.c>
php_value max_input_vars 3000
</IfModule>

⚠️ Dies funktioniert nur, wenn mod_php aktiviert ist. Einige Hosts verwenden stattdessen PHP-FPM, wo diese Methode nicht funktioniert.

✅ 3. Wp-config.php verwenden (nicht immer effektiv)

WordPress unterstützt nicht von Haus aus das Überschreiben von max_input_vars, aber in einigen Konfigurationen kann es funktionieren, dies hinzuzufügen:

@ini_set('max_input_vars', '3000');

Platzieren Sie dies über der Zeile, die besagt:

/* That's all, stop editing! Happy publishing. */

✅ 4. Ändern Sie die Benutzer php.ini oder php_value im cPanel

Wenn Sie ein Shared Hosting mit cPanel verwenden:

  • Gehen Sie zu cPanel > PHP-Version auswählen > Optionen
  • Suchen Sie nach max_input_vars und erhöhen Sie den Wert auf 3000 oder höher
  • Speichern Sie und überprüfen Sie phpinfo() zur Bestätigung

✅ Funktioniert sofort – kein Neustart erforderlich.

✅ 5. .user.ini verwenden (Für PHP-FPM oder CGI-Umgebungen)

Erstellen oder bearbeiten Sie die Datei .user.ini in Ihrem WordPress-Stammverzeichnis:

max_input_vars = 3000

Starten Sie dann PHP neu (oder warten Sie 5 Minuten, wenn der Host die Änderungen automatisch übernimmt).

✅ 6. Bei NGINX-PHP-FPM-Servern

NGINX verwendet keine .htaccess, also konfigurieren Sie PHP über FPM-Pool oder php.ini.

Bearbeiten Sie /etc/php/8.1/fpm/php.ini:

max_input_vars = 3000

Starten Sie dann neu:

sudo systemctl restart php8.2-fpm
sudo systemctl neu starten nginx

🧪 So bestätigen Sie, dass es funktioniert

Erstellen Sie eine Datei phpinfo.php in Ihrem WordPress-Stammverzeichnis:

<?php phpinfo(); ?>

Rufen Sie sie mit dem Browser auf: https://yourdomain.com/phpinfo.php

Suchen Sie nach max_input_vars und überprüfen Sie, ob es aktualisiert wurde.

🧼 Vergessen Sie nicht, die Datei danach zu löschen – sie gibt sensible Serverinformationen preis.

🛡️ Bewährte Praktiken

EmpfehlungGrund
Setzen Sie max_input_vars nicht auf 999999Kann zu DoS-Schwachstellen führen
Bleiben Sie bei 3000-5000Genug für große Menüs/Seitenersteller
Speichergrenzen überwachenGroße Eingabevariablen = mehr Speicherverbrauch
Verwenden Sie phpinfo() oder ini_get() zur FehlersucheVermeiden Sie Rätselraten

💡 Bonus: Andere verwandte Limits erhöhen

Manchmal wird dieses Problem von der Überschreitung anderer Grenzen begleitet:

max_execution_time = 300
memory_limit = 512M
post_max_size = 64M
upload_max_filesize = 64M

Diese Einstellungen können auch in php.ini, .htaccess oder .user.ini vorgenommen werden.

🧭 Abschließende Überlegungen

Der max_input_vars-Fehler ist leicht zu übersehen, kann aber wichtige Funktionen von WordPress stillschweigend unterbrechen. Wenn Sie diese Grenze mit der für Ihre Umgebung geeigneten Methode erhöhen, gewährleisten Sie die Stabilität komplexer Menüs, mehrsprachiger Inhalte und Drag-and-Drop-Seitenerstellungen.