🚀 WordPress’te “PHP Max Input Vars Limit” Hatasını Nasıl Giderirsiniz

Eğer bir WordPress sitesi oluşturuyor veya yönetiyorsanız ve aniden şu hatayla karşılaşıyorsanız:

“Uyarı: Max Input Vars limiti aşıldı”
veya
“max_input_vars değerini daha yüksek bir değere artırın.”

…bu, sunucunuzun PHP’nin çok fazla giriş alanını işlemesini engellediği anlamına gelir — genellikle büyük menüleri, sayfa oluşturucuları (Elementor veya WPBakery gibi) veya form gönderimlerini kaydederken görülür.

Bu ileri düzey makalede, şunları ele alacağız:

  • ✅ max_input_vars direktifinin ne olduğu
  • 🧠 WordPress’i nasıl etkilediği
  • 🔧 Bunu birden fazla yöntemle nasıl düzelteceğiniz (php.ini, .htaccess, wp-config, Nginx, cPanel, vb.)
  • 🔐 En iyi uygulamalar ve güvenlik hususları

🔍 max_input_vars nedir?

max_input_vars, PHP’nin kabul edebileceği giriş değişkenlerinin sayısını sınırlayan bir PHP direktifidir (POST, GET ve REQUEST aracılığıyla). Bu, sunucuyu hizmet reddi saldırılarından korur, ancak aynı zamanda CMS platformlarındaki meşru işlemleri de etkiler.

Varsayılan değer:

max_input_vars = 1000

Bu limiti aşıyorsanız (örneğin, 1000’den fazla öğe içeren bir WordPress menüsü kaydetmek), PHP girişi keser ve WordPress sessizce tüm değişiklikleri kaydetmez.

📌 Hata ile Ne Zaman Karşılaşacaksınız

  • Büyük navigasyon menüleri kaydederken
  • Birçok form alanı içeren sayfaları kaydederken
  • Karmaşık düzenlerle sayfa oluşturucuları kullanırken
  • WPML, Elementor, WooCommerce gibi eklentiler

🛠️ Hatanın Giderilmesi: 6 Kanıtlanmış Yöntem

✅ 1. php.ini’yi Değiştirin (Root veya VPS erişiminiz varsa en iyi yöntem)

Kendi sunucunuzu çalıştırıyorsanız, max_input_vars’ı değiştirmek için en temiz yol budur:

Adım 1: php.ini dosyasını bulun veya oluşturun (sunucuya bağlıdır):

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

8.1’i PHP sürümünüzle değiştirin.

Adım 2: Direktifi bulun ve düzenleyin:

max_input_vars = 3000

Adım 3: Web sunucunuzu yeniden başlatın:

sudo systemctl restart apache2

veya

sudo systemctl restart php8.2-fpm

✅ 2. .htaccess’i Güncelleyin (Paylaşımlı barındırma kullanıcıları için)

Eğer php.ini’ye erişiminiz yoksa, WordPress kurulumunuzun kökünde .htaccess’i düzenlemeyi deneyin:

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

⚠️ Bu yalnızca mod_php etkinse çalışır. Bazı barındırıcılar bunun yerine PHP-FPM kullanır, bu durumda bu yöntem çalışmaz.

✅ 3. wp-config.php kullanın (Her zaman etkili değildir)

WordPress, max_input_vars’ı geçersiz kılmayı yerel olarak desteklemez, ancak bazı yapılandırmalarda bunu eklemek işe yarayabilir:

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

Bunu şu satırın üstüne yerleştirin:

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

✅ 4. Kullanıcı php.ini veya cPanel’de php_value’yi Değiştirin

Eğer paylaşımlı barındırma kullanıyorsanız ve cPanel ile:

  • cPanel > PHP Sürümünü Seçin > Seçenekler’a gidin
  • max_input_vars’ı bulun ve 3000 veya daha yüksek bir değere artırın
  • Kaydedin ve phpinfo() ile onaylayın

✅ Anında çalışır — yeniden başlatma gerektirmez.

✅ 5. .user.ini kullanın (PHP-FPM veya CGI ortamları için)

Kök WordPress klasörünüzde .user.ini oluşturun veya düzenleyin:

max_input_vars = 3000

Sonra PHP’yi yeniden başlatın (veya barındırıcı otomatik olarak değişiklikleri uygularsa 5+ dakika bekleyin).

✅ 6. NGINX + PHP-FPM Sunucuları için

NGINX .htaccess kullanmaz, bu yüzden PHP’yi FPM havuzu veya php.ini aracılığıyla yapılandırın.

Edit /etc/php/8.1/fpm/php.ini:

max_input_vars = 3000

Sonra yeniden başlatın:

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

🧪 Çalıştığını Nasıl Onaylarsınız

WordPress kök dizininizde bir phpinfo.php dosyası oluşturun:

<?php phpinfo(); ?>

Tarayıcıdan erişin: https://yourdomain.com/phpinfo.php

max_input_vars’ı arayın ve güncellendiğini doğrulayın.

🧼 Dosyayı sildikten sonra unutmayın — bu, hassas sunucu bilgilerini açığa çıkarır.

🛡️ En İyi Uygulamalar

TavsiyeSebep
max_input_vars’ı 999999 olarak ayarlamayınDoS güvenlik açıklarına yol açabilir
3000–5000 arasında kalınBüyük menüler/sayfa oluşturucular için yeterlidir
Bellek limitlerini izleyinBüyük giriş değişkenleri = daha fazla bellek kullanımı
Hata ayıklamak için phpinfo() veya ini_get() kullanınTahmin yürütmekten kaçının

💡 Bonus: Diğer İlgili Limitleri Artırın

Bazen, bu sorun diğer limitlerin aşılmasıyla birlikte gelir:

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

Bunlar da php.ini, .htaccess veya .user.ini’ye eklenebilir.

🧭 Son Düşünceler

max_input_vars Hatasını Anlamak ve Gidermek. max_input_vars hatası, WordPress’te ince ama potansiyel olarak yıkıcı bir sorundur ve genellikle fark edilmez — ta ki kritik bir şey bozulana kadar. Bu PHP yapılandırma direktifi, sunucunuzun tek bir istekte işleyebileceği maksimum giriş değişkeni sayısını (form alanları veya menü öğeleri gibi) kontrol eder. Bu limit çok düşükse, özellikle karmaşık ortamlarda, web sitenizin bazı bölümlerinin değişiklikleri düzgün bir şekilde kaydetmesini sessizce engelleyebilir.

Sorunun Göründüğü Yerler
Bu hata genellikle şu senaryolarda ortaya çıkar:

Büyük veya iç içe geçmiş WordPress menüleri: Ayrıntılı menü yapıları oluştururken, menünün yalnızca bir kısmı kaydedilebilir veya değişiklikler kaydedildikten sonra kaybolabilir.

  • Çok dilli web siteleri: WPML veya Polylang gibi eklentiler, her dil için çok sayıda giriş alanı içeren form gönderimlerine büyük ölçüde bağımlıdır.
  • Sayfa oluşturucular: Elementor, WPBakery veya Divi gibi sürükle-bırak araçları, birçok öğe veya satır içeren düzenleri kaydederken sorunlarla karşılaşabilir.
  • Tema veya eklenti ayarları: Bazı zengin yapılandırma panellerine sahip temalar ve eklentiler, limit aşıldığında tüm ayarları doğru bir şekilde kaydedemeyebilir.
  • En kötü yanı? Genellikle görünür bir hata mesajı yoktur — değişiklikler basitçe uygulanmaz ve neyin yanlış gittiğini merak edersiniz.