WordPress’te PHP Max Input Vars Limit Hatası Nasıl Düzeltilir
PHP Max Input Vars limit hatası, WordPress yöneticilerinin karşılaştığı en yaygın — ancak sıklıkla yanlış anlaşılan — sunucu tarafı sorunlarından biridir. Form gönderimlerini sessizce keser, eklenti işlevselliğini bozar ve her zaman açık bir hata mesajı göstermeden eksik veri işlemesine neden olur. Eksik ayarlar, bozuk form verileri veya kötü davranan WordPress eklentileriyle mücadele ediyorsanız, bu kılavuz size her şeyi anlatacaktır: hataya ne neden olur, nasıl teşhis edilir ve tam olarak birden fazla kanıtlanmış yöntem kullanarak nasıl düzeltilir.
PHP Max Input Vars Limiti Nedir?
max_input_vars yönergesi, sunucunuzun tek bir istekte kabul edeceği maksimum giriş değişkeni sayısını kontrol eden bir PHP yapılandırma ayarıdır. Bu, üç giriş yönteminin tümü için geçerlidir:
- GET istekleri (URL sorgu dizeleri)
- POST istekleri (form gönderileri)
- COOKIE verileri
Varsayılan değer tipik olarak istek başına 1000 değişkendir. Bir form gönderimi — veya dinamik alanlar oluşturan bir eklenti — bu eşiği aştığında, PHP sınırın ötesindeki tüm değişkenleri sessizce bırakır. Sonuç, eksik veri işleme, bozuk ayarlar sayfaları ve öngörülemeyen eklenti davranışıdır.
Bu Neden Özellikle WordPress’te Olur?
WordPress, yüksek oranda genişletilebilir bir platformdur. Elementor veya WPBakery gibi sayfa oluşturucular, WooCommerce gibi karmaşık e-ticaret eklentileri, gelişmiş menü sistemleri ve çok alanlı iletişim formları, tek bir gönderimde yüzlerce — bazen binlerce — giriş değişkeni oluşturabilir. 1000’lik varsayılan limit, modern, özellik açısından zengin WordPress kurulumları için yeterli değildir.
> Yaygın belirtiler şunları içerir: WordPress menü öğeleri kaydedildikten sonra kaybolur, eklenti ayarları doğru şekilde kaydedilmez, büyük formlar eksik veriler gönderir ve tema özelleştirici seçenekleri kaybolur.
WordPress’i bir VPS Hosting planında çalıştırıyorsanız, genellikle bunu sunucu düzeyinde çözmek için tam kök erişimine sahipsiniz — en güvenilir yaklaşım. Paylaşılan ortamlarda, aşağıda ele alınan alternatif yöntemler geçerli olacaktır.
Adım 1: Mevcut max_input_vars Limitinizi Kontrol Edin
Herhangi bir değişiklik yapmadan önce, mevcut PHP yapılandırmanızı doğrulayın. Bunu yapmanın en temiz yolu bir phpinfo() çıktı dosyası oluşturmaktır.
PHP Info Dosyası Oluşturun
- Düz metin editörü açın (Notepad, VS Code, nano, vb.)
- Yeni bir dosya oluşturun ve aşağıdaki kodu ekleyin:
<?php
phpinfo();
?>- Dosyayı
info.phpolarak kaydedin - Web sunucunuzun kök dizinine yükleyin (örn.
/var/www/html/veyapublic_html/)
Çıktıyı Okuyun
Tarayıcınızı açın ve şu adrese gidin:
http://yourdomain.com/info.phpSayfada max_input_vars araması yapmak için Ctrl+F kullanın. İki sütun göreceksiniz: derlenmiş varsayılan değer ve yerel olarak yapılandırılmış değer. Şu anda ayarlanan değeri not edin.
> ⚠️ Güvenlik Uyarısı: Kontrol ettikten sonra info.php dosyasını hemen silin. Bu dosya hassas sunucu yapılandırma ayrıntılarını ortaya çıkarır ve bir üretim sunucusunda asla herkese açık olarak erişilebilir durumda kalmamalıdır.
Adım 2: max_input_vars Limitini Artırın
max_input_vars limitini artırmanın üç ana yöntemi vardır ve her biri farklı sunucu erişim seviyelerine uygun olacak şekilde tasarlanmıştır. Barındırma ortamınızla eşleşen yöntemi seçin.
Yöntem 1: php.ini Dosyasını Düzenleyin (VPS ve Dedicated Sunucular için Önerilir)
Bu, en yetkili ve güvenilir yöntemdir. Değişikliği PHP motoru seviyesinde uygular ve sunucu düzeyinde erişime sahip yöneticiler için tercih edilen yaklaşımdır.
php.ini dosyanızı bulun. Yaygın yollar şunları içerir:
| PHP Sürümü | Apache | PHP-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 |
Hangi PHP sürümünü çalıştırdığınızdan emin değil misiniz? Terminalinizde bunu çalıştırın:
php -vDosyayı düzenleyin:
sudo nano /etc/php/8.1/apache2/php.inimax_input_vars satırını arayın. Bir noktalı virgülle yorum yapılmış olabilir:
; max_input_vars = 1000Yorum satırını kaldırın ve değeri güncelleyin:
max_input_vars = 30003000 değeri çoğu WordPress kurulumu için uygun olacaktır. Büyük menüler veya kapsamlı WooCommerce konfigürasyonları olan çok karmaşık kurulumlar için 5000 değerini düşünebilirsiniz.
Değişiklikleri uygulamak için web sunucunuzu yeniden başlatın:
Apache için:
sudo systemctl restart apache2Nginx ile PHP-FPM için:
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginxBu yöntem Dedicated Sunucularında ve çoğu yönetilmeyen VPS planında tamamen mevcuttur ve PHP ortamınız üzerinde tam kontrol sağlar.
Yöntem 2: .htaccess Dosyasını Düzenleyin (Apache Paylaşımlı Barındırma için)
Paylaşımlı bir barındırma ortamındaysanız veya php.ini dosyasına doğrudan erişiminiz yoksa, .htaccess dosyası pratik bir alternatif sunar — barındırıcınız PHP yönergelerinin dizin düzeyinde geçersiz kılınmasına izin vermiş olması koşuluyla.
- WordPress kurulumunuzun kök dizinine gidin (
wp-config.phpdosyasının bulunduğu yer) .htaccessdosyasını açın veya oluşturun- Aşağıdaki satırı ekleyin:
php_value max_input_vars 3000- Dosyayı kaydedin
Önemli: Bu yöntem yalnızca AllowOverride etkinleştirilmiş Apache sunucularında çalışır. Nginx üzerinde çalışmayacaktır. Kaydettikten sonra 500 Internal Server Error alırsanız, barındırıcınız bu yönergeye izin vermez — satırı kaldırın ve bunun yerine Yöntem 3’ü kullanın.
Paylaşımlı Web Barındırma planında iseniz, PHP yönergesi geçersiz kılmalarının .htaccess dosyasında izin verilip verilmediğini onaylamak için önce barındırıcınızın destek ekibine başvurun.
Yöntem 3: wp-config.php Dosyasına Yönerge Ekleyin
Bu yöntem PHP’nin ini_set() işlevini doğrudan WordPress’in yapılandırma dosyasında kullanır. Ne php.ini ne de .htaccess değişiklikleri mümkün olmayan ortamlar için yaygın olarak kullanılan bir geçici çözümdür.
- WordPress kök dizininizde
wp-config.phpdosyasını açın - Aşağıdaki satırı
/* That's all, stop editing! Happy blogging. */okuyan yorum öncesine ekleyin:
@ini_set('max_input_vars', 3000);- Dosyayı kaydedin
Bilmeniz gereken sınırlamalar: Bazı barındırıcılar güvenlik nedenleriyle ini_set() işlevini devre dışı bırakırlar, bu da bu yöntemin sessizce başarısız olabileceği anlamına gelir. Ek olarak, @ hata bastırma operatörü burada işlev kısıtlanmışsa uyarıları önlemek için kullanılır — ancak başarısızlıkları da gizler. Bu değişikliği uyguladıktan sonra, Adım 1’de açıklanan phpinfo() yöntemi kullanarak her zaman çalışıp çalışmadığını doğrulayın.
Yöntem 4: Kullanıcı Düzeyinde php.ini veya .user.ini Dosyası Kullanın
PHP-FPM çalıştıran birçok paylaşımlı barındırma ortamında, web sitenizin kök dizinine özel bir php.ini veya .user.ini dosyası yerleştirebilirsiniz:
- WordPress kök dizininizde
.user.iniadlı yeni bir dosya oluşturun - Aşağıdaki içeriği ekleyin:
max_input_vars = 3000- Dosyayı kaydedin ve yükleyin
PHP-FPM, .user.ini dosyalarını periyodik olarak tarar (varsayılan olarak genellikle her 5 dakikada bir, user_ini.cache_ttl tarafından kontrol edilir). Değişiklikler hemen yürürlüğe girmeyebilir — test etmeden önce birkaç dakika bekleyin.
Adım 3: Değişikliklerin Etkili Olduğunu Doğrulayın
Seçtiğiniz yöntemi uyguladıktan sonra, yeni sınırın gerçekten aktif olduğunu doğrulamak kritik önem taşır.
- Tarayıcınızda
http://yourdomain.com/info.phpadresine geri dönün (dosyayı sildiyseniz yeniden yükleyin) max_input_varsaraması yapın- Local Value sütununun artık
3000(veya seçtiğiniz değer) gösterdiğini doğrulayın
Değer değişmemişse, aşağıdakileri deneyin:
- php.ini değişiklikleri için: PHP sürümünüz ve SAPI’niz (Apache vs. FPM) için doğru
php.inidosyasını düzenlediğinizden emin olun. Web sunucusunun tamamen yeniden başlatıldığını doğrulayın. - .htaccess değişiklikleri için:
AllowOverride Allöğesinin Apache sanal ana bilgisayar yapılandırmanızda ayarlandığını kontrol edin. - wp-config.php değişiklikleri için:
ini_set()öğesinin PHP yapılandırmanızdadisable_functionsyönergesini kontrol ederek devre dışı bırakılmadığını doğrulayınphpinfo().
> 🔒 Hatırlatma: Değişiklikleri doğruladıktan hemen sonra info.php öğesini sunucunuzdan silin. Erişilebilir durumda bırakmak bir güvenlik riski oluşturur.
İncelemeye Değer Ek PHP Ayarları
php.ini açıkken, WordPress performansını ve stabilitesini yaygın olarak etkileyen bu ilgili ayarları denetlemek değerlidir:
| Direktif | Önerilen Değer | Amaç |
|---|---|---|
max_input_vars | 3000–5000 | Giriş değişkeni sınırı |
memory_limit | 256M | Komut başına PHP belleği |
upload_max_filesize | 64M–128M | Maksimum dosya yükleme boyutu |
post_max_size | 128M | Maksimum POST veri boyutu |
max_execution_time | 120–300 | Komut zaman aşımı (saniye) |
max_input_time | 120 | Giriş ayrıştırma zaman aşımı |
Bu değerleri optimize tutmak, WordPress sitenizin karmaşık işlemleri — büyük içeri aktarımlar, medya yüklemeleri ve eklenti açısından ağır sayfalar — kesintisiz olarak işlemesini sağlar.
Birden fazla WordPress sitesini yönetiyorsanız ve PHP yapılandırması için akıcı bir arayüz istiyorsanız, tam sunucu kontrolü ile birlikte grafik PHP yapılandırma yöneticisi sağlayan cPanel VPS‘yi göz önünde bulundurun.
WordPress için Doğru Hosting Ortamını Seçmek
PHP konfigürasyon sorunlarını çözebilme kolaylığı, doğrudan hosting ortamınızla ilişkilidir. İşte hızlı bir özet:
- Shared Hosting: Sınırlı PHP kontrolü;
.htaccess,.user.iniveya destek taleplerini kullanın. Daha küçük siteler için uygundur. - VPS Hosting: Tam root erişimi;
php.inidosyasını doğrudan düzenleyin ve hizmetleri yeniden başlatın. Karmaşık eklenti ekosistemlerine sahip büyüyen WordPress siteleri için idealdir. - Dedicated Servers: Maksimum kontrol ve kaynaklar; diğer kullanıcılarla kaynak çekişmesi yok. Yüksek trafikli veya kurumsal WordPress dağıtımları için en iyisidir.
Çoğu ciddi WordPress yöneticisi için, bir VPS Hosting planına yükseltmek, sunucu konfigürasyon sınırlamalarını ortadan kaldırmanın ve PHP ortamınızın tam sahipliğini almanın en etkili tek yoludur.
Sonuç
PHP max_input_vars limit hatası, neyin neden olduğunu anladığınızda basit bir sorundur — PHP, istek başına işleyeceği giriş değişkenlerinin sayısına bir sınır koymaktadır. Çözüm de eşit derecede basittir: sınırı WordPress kurulumunuzun ihtiyaçlarını karşılayan bir değere yükseltin.
İşte seçeneklerinizin hızlı bir özeti:
php.inidosyasını düzenleyin — En iyi yöntem; sunucu düzeyinde erişim gerektirir (VPS/Dedicated).htaccessdosyasını düzenleyin — Apache paylaşımlı barındırma için iyi bir yedekwp-config.phpdosyasını düzenleyin — Hızlı bir geçici çözüm; bazı hostlar tarafından kısıtlanabilir.user.inioluşturun — PHP-FPM paylaşımlı barındırma ortamlarında kullanışlı
Değişikliklerinizi phpinfo() kullanarak doğrulayın ve sonrasında bilgi dosyasını silin. Bu düzeltmeyi, WordPress sitenizin en yüksek performansta çalıştığından emin olmak için PHP yapılandırmanızın daha geniş bir incelemesiyle birleştirin.
Bu gibi sorunları destek biletlerini beklemeden hızlı ve güvenle çözmek için kontrol sağlayan bir barındırma ortamı için — AlexHost’un performans açısından kritik WordPress dağıtımları için tasarlanmış Dedicated Servers ve VPS planlarını keşfedin.
tasarruf edin