WordPress'in `WP_MEMORY_LIMIT` değeri PHP için talep edilen WordPress memory limitini etkiler; hosting sağlayıcısının gerçek PHP memory_limit tavanını aşamaz.
WordPress büyük resim yükleme hatasını PHP memory, upload/post limitleri, Imagick/GD, disk/inode, debug.log ve WordPress 7.1 fallback ile teşhis edin.
WordPress'in `WP_MEMORY_LIMIT` değeri PHP için talep edilen WordPress memory limitini etkiler; hosting sağlayıcısının gerçek PHP memory_limit tavanını aşamaz.
WordPress dokümanında `WP_MAX_MEMORY_LIMIT` backend/admin işlemleri için daha yüksek memory isteğini kontrol eder; medya yüklemeleri admin tarafında bu bağlamdan etkilenebilir.
WordPress 7.1'de desteklenen tarayıcıda client-side media processing aktifse büyük görselin resize/thumbnail işlemi PHP memory yerine tarayıcı memory'sinde yapılabilir.
10 MB JPEG'in işlem sırasında yalnız 10 MB RAM kullanacağını düşünmek yanlıştır. Görsel decode edildiğinde width × height × channel/depth ve çalışma buffer'ları nedeniyle yüzlerce MB memory tüketebilir. Özellikle 40–100 MP telefon/kamera fotoğraflarında bu fark büyür.
Bu nedenle 'upload_max_filesize 64M, dosya 12M; neden yüklenmiyor?' sorusunun cevabı PHP image processing memory olabilir. Upload transfer limiti ile image decode/thumbnail memory limiti farklı katmanlardır.
`upload_max_filesize` tek dosya upload tavanıdır. `post_max_size` tüm HTTP POST gövdesini sınırlar ve genellikle upload_max_filesize'dan düşük olmamalıdır. `memory_limit` PHP process memory'sini sınırlar. Web server/proxy ayrıca `client_max_body_size` gibi ayrı bir body limit uygulayabilir.
WordPress Site Health > Info içindeki Server/Media bilgilerinden effective değerleri kontrol edin; yalnız cPanel MultiPHP ekranında yazan hedef değere güvenmeyin. PHP-FPM pool, `.user.ini`, CloudLinux selector veya hosting policy farklı effective value üretebilir.
php -i | grep -E 'memory_limit|upload_max_filesize|post_max_size'
`WP_MEMORY_LIMIT` WordPress'in PHP'den talep edeceği memory hedefidir; hosting tarafındaki hard limit veya `memory_limit` daha düşükse WordPress bunu sihirli biçimde aşamaz. WordPress dokümanı da host'un maksimum PHP memory'sini sınırlayabileceğini özellikle not eder.
Admin/media işlerinde `WP_MAX_MEMORY_LIMIT` de önemlidir. Frontend için 128M ayarlayıp backend maksimumunu düşük bırakmak, media ve update işlemlerinde beklenmedik memory sınırına yol açabilir.
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
Kullanıcıya görünen 'HTTP error' veya 'Post-processing failed' mesajı kök nedeni gizleyebilir. Staging ortamında WP_DEBUG ve WP_DEBUG_LOG açılarak `wp-content/debug.log` içinde `Allowed memory size`, ImagickException, GD decode, REST/AJAX veya plugin fatal error aranmalıdır.
Production sitede debug mesajlarını ekrana basmayın. `WP_DEBUG_DISPLAY` false tutulup log güvenli yerde incelenmelidir; debug log içinde path, query veya hassas eklenti bilgileri bulunabilir.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
ImageMagick policy, delegate/codec eksikliği, process limit veya Imagick resource limit de büyük görsel işlemeyi bozabilir. PHP memory yüksek olsa bile Imagick kendi resource policy'si nedeniyle başarısız olabilir.
GD kullanılıyorsa çok büyük görsel tüm bitmap'i memory'de tutar; Imagick streaming avantajlarına rağmen host policy'si belirleyici olabilir. WordPress Site Health media bölümünde aktif image editor ve format desteğini kontrol edin.
WordPress orijinal dosyaya ek olarak birçok intermediate size üretir. Disk kotası veya inode limiti dolduğunda upload transferi başarılı olsa bile thumbnail/finalize aşamasında dosya yazma başarısız olabilir.
Hosting panelindeki 'disk free' tek başına yeterli değildir; inode, user quota ve `wp-content/uploads` dizininin owner/permission durumunu da kontrol edin.
df -h
df -i
du -sh wp-content/uploads
WordPress 7.1 client-side media processing aktif olduğunda resize, compression, rotation ve thumbnail üretimi tarayıcıda gerçekleşebilir. Bu durumda eski 'PHP memory artır' çözümü aynı tarayıcıda gereksiz olabilir; ama unsupported browser server fallback'e düştüğünde sorun tekrar görülebilir.
Bu nedenle 7.1'de 'Chrome'da çalışıyor Firefox'ta bozuluyor' gibi bir fark doğrudan plugin/browser compatibility veya server fallback kaynak limitini gösterebilir. Aynı resmi iki tarayıcıda test etmek yeni ve çok yararlı bir teşhis yöntemidir.
Önce exact error/log, sonra effective PHP/upload limitleri, disk/inode, active image editor, plugin conflict ve WordPress 7.1 client/fallback durumu kontrol edilmelidir. Memory limitini artırmak yalnız gerçek memory exhaustion kanıtı varsa hedefli çözümdür.
512M veya 1G memory verip sorunu gizlemek, kötü optimize edilmiş eklenti veya devasa görsel akışını kalıcı olarak çözmez. Hosting kaynağı artırma ile uygulama hatasını ayırın.
| Belirti | Önce kontrol et |
|---|---|
| Allowed memory size exhausted | memory_limit, WP_MAX_MEMORY_LIMIT, image dimensions |
| 413 / request too large | upload/post/web-server body limit |
| File write / thumbnail failure | Disk, inode, uploads permission |
| 7.1 Chrome OK, Firefox fail | Client processing vs server fallback |
Komutları üretim sistemine uygulamadan önce bağlamı doğrulayın, yedek ve geri dönüş planı oluşturun. DNS, TLS, recovery, Docker veya WordPress ayarlarında birden fazla değişkeni aynı anda değiştirmek kök nedeni görünmez hale getirir.
Hosting PHP memory tavanı daha düşük olabilir veya sorun memory değil upload limit, Imagick, disk/inode, plugin ya da timeout olabilir.
Desteklenen client pipeline'da image processing PHP memory'den çıkar; fakat fallback ve diğer PHP işlemlerinde memory limit hâlâ geçerlidir.
Hayır. Biri transfer edilen dosya boyutunu, diğeri PHP process memory'sini sınırlar.
Sorun hosting, VPS, Docker, Cloudflare, Windows veya WordPress altyapınızda devam ediyorsa hata çıktısı ve mevcut mimariyle birlikte teknik destek kaydı oluşturabilirsiniz.