Temporary folder lost hatası (Geçici klasör bulunamadı)

“Temporary folder lost” veya Türkçesiyle “Geçici klasör bulunamadı” hatası WordPress’in güncelleme yaparken, eklenti/tema yüklerken ya da medya işleme sırasında kullanacağı geçici dizini bulamaması veya yazamaması durumunda ortaya çıkar. Bu hata eskiden beri aynı kökten gelir: PHP’nin sys_temp_dir’i, sunucunun /tmp dizini, open_basedir kısıtları veya dosya izinleri.

Önce sunucu tarafında PHP’nin geçici dizinini kontrol edersin. Bazı hostlar /tmp’yi temizler, bazıları chroot’lu çalıştırır, bazen de disk doludur. Disk doluluğu burada çok klasik bir sebeptir: /tmp dolunca WordPress “klasör yok” gibi davranabilir. Bu yüzden panelden disk kullanımına bakmak eski ama sağlam adımdır.

WordPress tarafında en pratik çözüm, wp-content içinde bir temp klasörü oluşturup WordPress’e bunu kullanmasını söylemektir. Önce FTP ile wp-content içinde “temp” adında klasör açarsın. İzinlerini genelde 755 yaparsın; bazı hostlarda 775 gerekebilir. Sonra wp-config.php içine WP_TEMP_DIR tanımı eklersin.

// wp-config.php
define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/temp/');


Bu ayar sonrası eklenti yüklemeyi tekrar denersin. Eğer sorun izin ise hemen düzelir. Düzelmiyorsa open_basedir kısıtına bakarsın. Bazı sunucularda PHP sadece belirli dizinlere yazmaya izin verir. Bu durumda wp-content/temp bile kısıt dışındaysa çalışmaz. Hosting tarafında open_basedir düzenlemesi gerekir.

Bir başka klasik nokta dosya sahipliği ve izinleridir. WordPress dosyaları farklı kullanıcıya aitse, PHP-FPM başka kullanıcıyla çalışıyorsa yazma izni sorun çıkar. Görünürde 755 olsa bile sahiplik yüzünden yazamaz. Bu durumda doğru sahiplik önemlidir. SSH erişimin varsa tipik düzeltme şöyledir (kullanıcı adını kendi sistemine göre değiştirmen gerekir).

# örnek
chown -R siteuser:siteuser wp-content
find wp-content -type d -exec chmod 755 {} \;
find wp-content -type f -exec chmod 644 {} \;

Windows hosting veya bazı paylaşımlı panellerde bu komutlar yoktur; panelden “Fix Permissions” gibi seçenekler olur. Yine mantık aynıdır: WordPress’in yazdığı klasörler yazılabilir olmalı, ama herkese 777 yapıp geçmek tembelliktir. 777, kötü alışkanlıktır; güvenlik riskidir.

Bu hata bazen güncelleme sırasında “paket indirildi, açılamadı” gibi bir hatayla birlikte gelir. Burada WordPress’in kullandığı unzip işlemi de geçici dizine bağlıdır. Zip açma için PHP zip extension gerekir. Eğer zip extension yoksa farklı hata verir ama bazı sistemlerde yine temp tarafında patlar. Site Sağlığı ekranında “ZipArchive” durumunu kontrol etmek iyi teşhistir.

Son olarak, hosting tarafında /tmp düzenli temizleniyorsa ve uzun süren işlemlerde dosyalar siliniyorsa, kendi temp klasörünü wp-content altında tutmak daha sağlıklı olur. Bu yüzden WP_TEMP_DIR yaklaşımı yıllardır en pratik ve en az sürpriz çıkaran çözümdür.

Hızlı İletişim Formu

Sorun, teklif ya da net bir soru… kısa yazın, biz dönüş yapalım.