WordPress dosya yükleme sınırı tek bir ayardan oluşmaz. upload_max_filesize, post_max_size, memory_limit, execution time, Nginx body limiti, geçici dizin, disk alanı ve MIME güvenliği birlikte çalışır. Bu rehber gerçek sınırı bulup doğru katmanda düzenlemeyi açıklar.
The uploaded file exceeds the upload_max_filesize directive in php.ini
413 Request Entity Too Large
HTTP error
Missing a temporary folder
Tek dosya boyutunu upload_max_filesize, tüm POST isteğini post_max_size sınırlar. Web sunucusu veya proxy daha düşük bir body limiti uygularsa PHP’ye ulaşmadan 413 oluşabilir.
post_max_size değeri upload_max_filesize değerinden küçükse büyük dosya PHP’ye eksik ulaşır ve WordPress anlamlı mesaj veremeyebilir. memory_limit de görsel işleme sırasında ayrıca önemlidir.
cPanel veya Plesk panelinde değiştirilen PHP ayarı yalnız domainin kullandığı handlera uygulanmalıdır. CLI php.ini değiştirilip web PHP’sinin aynı olduğu varsayılmamalıdır.
Görsel yükleniyor ancak thumbnail üretiminde HTTP error oluşuyorsa dosya boyutundan çok piksel boyutu, Imagick/GD, bellek ve geçici dizin kontrol edilir.
SVG ve bazı dosya türlerinin reddedilmesi yükleme limiti değil MIME güvenliği davranışıdır. Güvenilmeyen dosya türlerini yalnız uzantı ekleyerek açmak risklidir.
WordPress’e video arşivi yüklemek yerine büyük medya dosyaları için uygun obje depolama veya video platformu kullanmak, yedekleme ve disk yönetimi açısından daha sağlıklıdır.
E-postada, tarayıcıda veya SSH günlüğünde gördüğünüz ifadeyi aratın. Her kartta anlam, muhtemel neden ve güvenli ilk işlem bulunur.
Anlamı: Dosya PHP’nin tek dosya sınırını aşmıştır.
Muhtemel neden: Düşük upload_max_filesize veya yanlış ini dosyası.
Anlamı: Web sunucusu/proxy isteği PHP’ye ulaşmadan reddetmiştir.
Muhtemel neden: Nginx client_max_body_size veya proxy limiti.
Anlamı: Form içindeki HTML sınırı aşılmıştır.
Muhtemel neden: Tema/eklenti form değeri.
Anlamı: PHP upload_tmp_dir mevcut değil veya yazılamıyor.
Muhtemel neden: Disk, izin veya yanlış tmp yolu.
Anlamı: WordPress genel medya işleme hatası almıştır.
Muhtemel neden: Bellek, Imagick, timeout veya REST/AJAX sorunu.
Anlamı: MIME türü WordPress tarafından kabul edilmemiştir.
Muhtemel neden: Desteklenmeyen veya yanlış algılanan MIME.
Anlamı: Uploads dizini oluşturulamıyor veya yazılamıyor.
Muhtemel neden: Yanlış sahiplik, izin veya disk dolu.
Anlamı: Tüm POST gövdesi post_max_size değerini aşmıştır.
Muhtemel neden: post_max_size upload limitinden küçük.
Bu ifadeyle eşleşen kayıt bulunamadı.
Komutlar root erişimi içindir. Önce yalnızca durum ve log toplayın; nedeni görmeden kalıcı ayar değiştirmeyin.
php -r 'foreach(["upload_max_filesize","post_max_size","memory_limit","max_execution_time","upload_tmp_dir"] as $k) echo $k."=".ini_get($k).PHP_EOL;'
CLI değerlerini gösterir; web PHP için phpinfo veya Site Health ile karşılaştırın.
wp eval 'echo wp_max_upload_size(), PHP_EOL;'
WordPress’in hesapladığı maksimum yükleme boyutunu byte cinsinden gösterir.
df -h
df -i
php -r 'echo sys_get_temp_dir(), PHP_EOL;'
Disk, inode ve kullanılan geçici dizini gösterir.
ls -ld wp-content wp-content/uploads
find wp-content/uploads -maxdepth 1 -printf '%m %u:%g %p\n'
Uploads dizini sahiplik ve izinlerini gösterir.
nginx -T 2>/dev/null | grep -n client_max_body_size | head -n 20
Nginx’in tanımlı request body limitlerini gösterir.
file --mime-type DOSYA
Dosyanın uzantıdan bağımsız gerçek MIME türünü gösterir.
WordPress hatasının temel nedeni aynıdır ancak log yolları, PHP ayar ekranları ve servis yönetimi kullanılan barındırma altyapısına göre değişir.
cPanel’de MultiPHP INI Editor ile domainin PHP upload değerleri yönetilir.
php -r 'echo ini_get("upload_max_filesize"), PHP_EOL;'Plesk PHP Settings ekranı domain bazında upload ve timeout değerlerini uygular.
cd /var/www/vhosts/ALANADI/httpdocs && wp eval 'echo wp_max_upload_size();'Panelsiz sunucuda PHP-FPM ini, web server body limiti ve tmp dizini ayrı katmanlardır.
php --ini && nginx -t 2>/dev/nullHata kodunu belirleyin, gerçek web limitlerini ölçün, disk/tmp/izin ve web server body sınırını sırasıyla kontrol edin.
413, PHP directive, MIME veya HTTP error mesajını aynen kaydedin.
Panelde yazan değer yerine uygulamanın hesapladığı limiti görün.
wp eval 'echo wp_max_upload_size();'post_max_size upload_max_filesize’den büyük; memory_limit işleme için yeterli olmalıdır.
413 varsa PHP yerine Nginx/Apache/proxy katmanına odaklanın.
nginx -T 2>/dev/null | grep client_max_body_sizeYeni dosya ve thumbnail oluşturulabildiğini kontrol edin.
df -h && ls -ld wp-content/uploadsKüçük ve büyük dosyayı karşılaştırıp logda yeni hata oluşmadığını doğrulayın.
Dosya boyutu, PHP limitleri ve WordPress unzip için disk alanı kontrol edilir.
Piksel boyutu, Imagick/GD, memory ve thumbnail işlemi incelenir.
Nginx/proxy body limiti PHP’den önce isteği engelliyordur.
Bu limit değil MIME güvenliğidir; güvenilir sanitize çözümü gerekir.
file --mime-type dosya.svgNetwork Admin > Settings içindeki upload limiti ayrıca kontrol edilir.
Domainin kullandığı web PHP ayarında değiştirilir; cPanel MultiPHP INI, Plesk PHP Settings veya php.ini/FPM override kullanılabilir.
Tüm POST isteği dosya dışında form alanlarını da içerdiği için tek dosya limitinden büyük olmalıdır.
Genellikle Nginx, proxy veya web sunucusu body limitinden gelir.
WordPress medya işleminde PHP, AJAX, Imagick veya izin kaynaklı farklı hataları genel mesajla gösterebilir; log gerekir.
WordPress güvenlik nedeniyle SVG’yi varsayılan olarak desteklemez; yalnız güvenli sanitize çözümüyle açılmalıdır.
Küçük dosyalar mümkün olsa da büyük video için obje depolama veya video platformu daha uygundur.
Evet; ağ yöneticisi ayrıca site upload limiti belirleyebilir.
cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim ve güvenlik katmanlarını birlikte analiz ederek yalnızca servisi kaldırmak yerine arızanın temel nedenini gideriyoruz.