Büyükçe bir dosyayı yüklemeye çalışırken karşınıza ‘413 Request Entity Too Large’ uyarısı çıkıyorsa sunucu size kibarca ‘bu istek bana fazla geldi’ diyor. Genellikle bir video, yüksek çözünürlüklü görsel ya da hacimli bir yedek dosyasını aktarırken görülür. Form gönderilmeden yarıda kesilir, yükleme çubuğu dolmadan hata ekrana düşer.
Hatanın mantığı
Her web sunucusunun kabul edeceği istek gövdesi için bir üst sınırı vardır. Bu sınır, kötü niyetli ya da hatalı devasa isteklerin sunucuyu boğmasını önlemek için konur. Yüklediğiniz dosyanın boyutu bu sınırı aştığında sunucu isteği daha baştan reddeder ve 413 döner. Yani sorun dosyanızda değil, sunucunun izin verdiği boyutta. Çözüm de bu sınırı makul bir seviyeye çıkarmaktan geçer.
Hangi sunucuyu kullandığınızı bilin
Ayarın yapılacağı yer sunucu yazılımına göre değişir. Nginx ile Apache için farklı yerlere bakılır. Ayrıca PHP’nin kendi yükleme sınırları da işin içine girer. Çoğu zaman bu üçünü birden gözden geçirmek gerekir, çünkü en düşük sınır hangisiyse işi o belirler.
Adım adım çözüm
- Nginx kullanıyorsanız sunucu yapılandırma dosyasında client_max_body_size değerini artırın. Örneğin 64 megabayta kadar bir dosyaya izin vermek için bu değeri 64M yapıp Nginx’i yeniden başlatın. Değişiklik yeniden başlatma olmadan geçerli olmaz.
- Apache kullanıyorsanız .htaccess ya da sunucu yapılandırmasında LimitRequestBody değerini bayt cinsinden yükseltin. Bu satır yoksa ekleyebilirsiniz.
- PHP tarafında php.ini dosyasında iki değeri birlikte artırın. upload_max_filesize yüklenecek tek dosyanın sınırını, post_max_size ise tüm form gönderiminin sınırını belirler. post_max_size değerini her zaman upload_max_filesize değerinden biraz büyük tutun.
- Çok büyük dosyalarda yükleme süresi de uzayacağından php.ini içindeki max_execution_time ve max_input_time değerlerini de rahat bir seviyeye çekin, yoksa yükleme boyut sınırına takılmadan zaman aşımına uğrayabilir.
Dosyalara erişemiyorsanız
Paylaşımlı bir hostingde çalışıyorsanız Nginx ya da php.ini dosyasına doğrudan ulaşamayabilirsiniz. Böyle durumlarda hosting panelinizde çoğu zaman PHP ayarları ya da yükleme sınırı için hazır bir bölüm bulunur. Oradan değeri değiştirebilirsiniz. Panelde böyle bir seçenek yoksa barındırma firmanızın desteğine yazın, sınırı yükseltmelerini isteyin. Bu rutin bir taleptir, çoğu firma kısa sürede halleder.
Değişiklik işe yaradı mı
Ayarları güncelledikten sonra ilgili servisi yeniden başlatmayı unutmayın, aksi halde yeni değerler okunmaz. WordPress yönetim panelinde Araçlar altındaki site sağlığı bölümü ya da medya yükleme ekranı, izin verilen azami dosya boyutunu gösterir. Oradan yeni sınırın geçerli olup olmadığını görebilirsiniz. Ardından takılan dosyayı tekrar yüklemeyi deneyin.
Önbellek ve vekil sunucu katmanı
Siteniz Cloudflare gibi bir servisin ya da bir vekil sunucunun arkasındaysa işin içine bir sınır daha girer. Bu katmanların da kendi istek boyutu sınırı olabilir ve siz kendi sunucunuzdaki değerleri yükseltseniz bile araya giren servis isteği kesebilir. Böyle bir yapı kullanıyorsanız o servisin panelinden de yükleme sınırını kontrol edin. Hatanın hangi katmandan geldiğini anlamak için dosyayı geçici olarak bu servisi devre dışı bırakıp doğrudan sunucuya yüklemeyi deneyebilirsiniz, sorun kaybolursa kaynağı bulmuş olursunuz.
Baştan önlem
Sınırı ihtiyacınızdan çok daha yükseğe çekmek de iyi değildir, çünkü gereksiz yere büyük isteklere kapı açar. Yükleyeceğiniz en büyük dosyayı düşünüp ona göre makul bir pay bırakın. Görselleri yüklemeden önce boyutlarını küçültmek de çoğu sorunu baştan ortadan kaldırır. Devasa videoları doğrudan siteye yüklemek yerine bir video servisine koyup gömmek hem bu hatayı hem de sunucu yükünü azaltır.
Bu ayarlar bir kez doğru yapıldığında uzun süre sorun çıkarmaz. Erişim konusunda takılırsanız hangi sunucuyu kullandığınızı öğrenip ona göre ilerleyin, yarısı burada biter.
Bu işleri kendiniz yapmak yerine profesyonel destek isterseniz, WordPress bakım ve teknik destek hizmetime göz atabilirsiniz.
Bu konunun tüm rehberi: WordPress Hataları ve Çözümleri