WordPress'te resim yüklenmiyor: "HTTP error" ve dosya boyutu sınırı
Medya kitaplığına bir görsel yüklerken küçük bir "HTTP error" yazısı ya da "Bu dosya bu sitenin izin verdiği maksimum yükleme boyutunu aşıyor" uyarısı alıyorsunuz. Bu iki hata farklı yerlerden gelir; mesaja bakarak yönü belirleyin.
"Maksimum yükleme boyutunu aşıyor" mesajı
Dosya, PHP'nin sınırından büyüktür. Yönetim panelinde Medya > Yeni Ekle sayfasının altında "Maksimum yükleme dosya boyutu" yazar. Artırmak için:
- Hosting'de: sitenizin klasörüne
.user.inidosyası koyun:upload_max_filesize = 64Mvepost_max_size = 64M. Ayrıntı: PHP ayarları. Varsayılan sınır sunucuda zaten 100M olduğundan çoğu durumda dosyanın kendisini küçültmek yeterlidir. - VDS'te: PHP'nin
php.inidosyasında (/etc/php/8.3/fpm/php.ini) aynı iki değeri artırıpsudo systemctl restart php8.3-fpmyapın. Nginx tarafında ayrıcaclient_max_body_sizegerekir: 413 hatası.
"HTTP error" (sebebi belirsiz) hatası
Bu hata genelde yüklenen dosyanın boyutu ya da işlenmesi sırasında PHP'nin kaynak sınırına takılmasından olur. Sırayla deneyin:
- Resmi küçültün. 5000 piksel genişliğinde, birkaç MB'lık fotoğraflar WordPress'in küçük sürümleri üretirken bellek sınırını aşabilir. Resmi 2000 piksel genişliğe indirip tekrar deneyin. Yükleme çalışırsa sebep bellek ya da süre sınırıdır.
- Bellek sınırını artırın.
wp-config.php'yedefine('WP_MEMORY_LIMIT', '256M');ekleyin. - Tarayıcı ve eklentileri eleyin. Gizli pencerede deneyin; yükleme ya da güvenlik eklentilerini geçici kapatın.
- Klasör izinleri:
wp-content/uploadsweb sunucusunun yazabileceği bir klasör olmalı (755, doğru sahip): dosya izinleri. - Görsel işleme kütüphanesi: PHP'de GD ya da Imagick eksikse veya hatalıysa küçük sürümler üretilemez. VDS'te
sudo apt install php-gd php-imagickve PHP-FPM'i yeniden başlatın. Yönetim panelinde Araçlar > Site Sağlığı bu eksikleri gösterir. - Disk dolu mu?
df -hvedf -ikontrol edin.
Sunucu günlüğüne bakın
Gerçek nedeni günlük söyler. VDS'te sudo tail -n 30 /var/log/nginx/error.log ve PHP-FPM günlüğüne bakın. client intended to send too large body görürseniz Nginx sınırı, Allowed memory size exhausted görürseniz PHP bellek sınırıdır, Permission denied görürseniz izinlerdir.
Önlem
Görselleri yüklemeden önce boyutlandırıp sıkıştırın (WebP, 1600 ila 2000 piksel genişlik çoğu site için yeter). Böylece hem yükleme sorunsuz olur hem sayfalarınız hızlı açılır: WordPress hızlandırma.
Sık sorulanlar
Büyük video yüklemek istiyorum.
Videoları WordPress'e doğrudan yüklemek yerine YouTube ya da benzeri bir servise yükleyip sayfaya gömün. Sunucunuz hem alan hem trafik açısından rahatlar.
Sınırı artırdım, değişmiyor.
Hosting'de .user.ini değişikliği yaklaşık 5 dakika sonra etkili olur. VDS'te PHP-FPM'i yeniden başlatmayı unutmayın; Nginx sınırı da ayrıdır.
Sadece belirli resimlerde hata alıyorum.
O dosyalar çok büyük ya da bozuk olabilir (özellikle bazı telefon biçimleri). Başka bir programda açıp yeniden kaydedin.
İlgili makaleler
- Hosting'de PHP ayarlarını değiştirme: memory_limit, upload boyutu, .user.ini
- Nginx "413 Request Entity Too Large" hatası: client_max_body_size
- WordPress güncellerken FTP bilgisi soruyor ve "Could not create directory" hatası
Sorununuz çözülmediyse destek talebi açın. Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.
Geri bildiriminiz için teşekkürler!