WordPress güncellerken FTP bilgisi soruyor ve "Could not create directory" hatası

WordPress 62 görüntülenme Markdown

Eklenti kurmaya ya da WordPress'i güncellemeye çalışıyorsunuz ve karşınıza "Devam etmek için bağlantı bilgilerini girin" diye bir FTP formu çıkıyor ya da şu hata geliyor: Could not create directory, Unable to create directory wp-content/uploads, Update failed: Could not copy file. WordPress kendi dosyalarını değiştirmek için web sunucusunun kullanıcısıyla yazma izni ister; ona bu izin verilmediğinde başka yollar (FTP) arar. Sorun neredeyse her zaman dosya sahipliği ya da izin sorunudur.

Doğru değerler

  • Klasörler: 755
  • Dosyalar: 644
  • wp-config.php: 600 ya da 640 (parola içerir)
  • Sahip: web sunucusunun çalıştığı kullanıcı. VDS'te Nginx ve PHP-FPM genellikle www-data kullanıcısı; hosting'de her hesabın kendi kullanıcısı.

777 vermeyin. Her kullanıcının yazabildiği bir klasör, sitenize zararlı dosya yüklenmesinin en kolay yoludur.

VDS'te düzeltme

cd /var/www/ornek.com
sudo chown -R www-data:www-data .
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;
sudo chmod 600 wp-config.php

PHP-FPM'in hangi kullanıcıyla çalıştığını öğrenmek için: ps aux | grep php-fpm çıktısında worker süreçlerinin kullanıcı adına bakın (www-data yazar). Kullanıcı farklıysa chown komutunda onu yazın.

Hosting'de

Dosyalar hesabınızın kullanıcısına aittir ve PHP de aynı kullanıcıyla çalışır; FTP formu çıkması nadirdir. Çıkıyorsa dosyaları farklı bir kullanıcıyla (örneğin root olarak) yüklemişsinizdir. FTP ile yüklediyseniz normal hesabınızla, bir yedekten geri yüklediyseniz sahipliğin doğru olduğundan emin olun. Dosya Yöneticisi'nde izinleri düzenleyebilirsiniz; toplu düzeltme gerekirse destek talebi açın.

Formu hiç görmemek: doğrudan yazma

Sahiplik doğruysa WordPress dosyaları doğrudan yazabilir. Hâlâ FTP soruyorsa wp-config.php'ye şunu ekleyebilirsiniz:

define('FS_METHOD', 'direct');

Bu satır WordPress'e doğrudan yazmayı denemesini söyler; izinler doğruysa çalışır. İzinler yanlışsa hata değişir ama sorun gitmez. Bu yüzden önce izinleri düzeltin.

Başka sebepler

  • Disk dolu: Dosya yazılamıyorsa df -h ve df -i kontrol edin: inode ve disk.
  • open_basedir kısıtı: Hosting'de PHP yalnızca sitenizin klasörlerine yazabilir; eklenti başka bir yere yazmaya çalışıyorsa hata verir. Bu bir güvenlik özelliğidir.
  • Geçici klasör: wp-content/upgrade klasörü oluşamıyorsa onu elle oluşturup sahipliğini düzeltin.

Resim yüklerken "HTTP error" alıyorsanız farklı bir konudur: resim yükleme hatası.

Sık sorulanlar

Her şeyi 777 yapmak çözer mi?

Çözer gibi görünür ama sitenizi ciddi şekilde açığa çıkarır. Başka bir sitedeki zafiyet ya da zararlı bir eklenti dosyalarınızı değiştirebilir. Doğru sahiplik ve 755/644 kullanın.

FTP bilgilerini girsem olur mu?

Girebilirsiniz, WordPress FTP ile dosyaları yazar. Ama FTP parolası düz metin olarak kayıtlı kalmasa da bu yöntem yavaştır ve sorunun asıl sebebini gizler.

Güncellemeden sonra siteler bozuldu.

Güncelleme sırasında yarım kalan dosyalar olabilir: güncelleme sonrası geri dönme.

İlgili makaleler

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.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.