Tüm barındırma hizmetlerinde 15% tasarruf edin

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bölüm
Yönetim

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

  1. Düz metin editörü açın (Notepad, VS Code, nano, vb.)
  2. Yeni bir dosya oluşturun ve aşağıdaki kodu ekleyin:
<?php
phpinfo();
?>
  1. Dosyayı info.php olarak kaydedin
  2. Web sunucunuzun kök dizinine yükleyin (örn. /var/www/html/ veya public_html/)

Çıktıyı Okuyun

Tarayıcınızı açın ve şu adrese gidin:

http://yourdomain.com/info.php

Sayfada 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üApachePHP-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 -v

Dosyayı düzenleyin:

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

max_input_vars satırını arayın. Bir noktalı virgülle yorum yapılmış olabilir:

; max_input_vars = 1000

Yorum satırını kaldırın ve değeri güncelleyin:

max_input_vars = 3000

3000 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 apache2

Nginx ile PHP-FPM için:

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

Bu 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.

  1. WordPress kurulumunuzun kök dizinine gidin (wp-config.php dosyasının bulunduğu yer)
  2. .htaccess dosyasını açın veya oluşturun
  3. Aşağıdaki satırı ekleyin:
php_value max_input_vars 3000
  1. 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.

  1. WordPress kök dizininizde wp-config.php dosyasını açın
  2. Aşağıdaki satırı /* That's all, stop editing! Happy blogging. */ okuyan yorum öncesine ekleyin:
@ini_set('max_input_vars', 3000);
  1. 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:

  1. WordPress kök dizininizde .user.ini adlı yeni bir dosya oluşturun
  2. Aşağıdaki içeriği ekleyin:
max_input_vars = 3000
  1. 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.

  1. Tarayıcınızda http://yourdomain.com/info.php adresine geri dönün (dosyayı sildiyseniz yeniden yükleyin)
  2. max_input_vars araması yapın
  3. 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.ini dosyası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ızda disable_functions yönergesini kontrol ederek devre dışı bırakılmadığını doğrulayın phpinfo().

> 🔒 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ğerAmaç
max_input_vars3000–5000Giriş değişkeni sınırı
memory_limit256MKomut başına PHP belleği
upload_max_filesize64M–128MMaksimum dosya yükleme boyutu
post_max_size128MMaksimum POST veri boyutu
max_execution_time120–300Komut zaman aşımı (saniye)
max_input_time120Giriş 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.ini veya destek taleplerini kullanın. Daha küçük siteler için uygundur.
  • VPS Hosting: Tam root erişimi; php.ini dosyası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:

  1. php.ini dosyasını düzenleyin — En iyi yöntem; sunucu düzeyinde erişim gerektirir (VPS/Dedicated)
  2. .htaccess dosyasını düzenleyin — Apache paylaşımlı barındırma için iyi bir yedek
  3. wp-config.php dosyasını düzenleyin — Hızlı bir geçici çözüm; bazı hostlar tarafından kısıtlanabilir
  4. .user.ini oluş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.