Rehber 01 Kasım 2026 · 6 dakika okuma

WordPress’te Dosya İzinleri: Hangi Dizin Ne Olmalı?

WordPress’te dizin ve dosya izinleri için net şema: doğru chmod değerleri, riskler, sorun giderme ve güvenli varsayımlar.

WordPress sitelerinde dosya izinleri (file permissions), hem güvenliği hem de erişilebilirliği doğrudan etkiler. Yanlış izinler “500 Internal Server Error” hatalarına, eklenti/yükleme sorunlarına ve bazı durumlarda gereksiz risklere yol açar. Bu rehberde, WordPress’in tipik dizinlerinde hangi izinlerin kullanılacağını net bir şema ile ele alacak; ardından yaygın hataları nasıl tespit edip düzelteceğinizi adım adım vereceğim.

Not: Aşağıdaki değerler, çoğu Linux tabanlı hosting senaryosu için güvenli varsayımlardır. Dosya sistemi türü (ext4/xfs), web sunucusu kullanıcısı (www-data, nginx, apache) ve PHP çalıştırma modu (mod_php/FPM) değerleri etkileyebilir. Bu yüzden önce mevcut durumu kontrol edeceğiz.

WordPress dosya izinleri nasıl okunur? (chmod mantığı)

Linux’ta izinler üçlü (okuma/yazma/çalıştırma) mantığıyla verilir. En pratik referans, chmod ile verilen 3 veya 4 haneli sayılardır.

  • Dosyalar (file): Web üzerinden statik okunur. Genelde çalıştırma gerekmez.
  • Dizinler (directory): İçerisine girilmesi için “execute (x)” gerekir.

Tipik eşleşmeler: - 644 = dosya (rw-r--r--) - 640/600 = dosyalar (daha kısıtlı) - 755 = dizin (rwxr-xr-x) - 750 = daha kısıtlı dizin - 700 = en kısıtlı (çoğu zaman gereksiz)

WordPress’te hedef: 1) Web sunucusu dosyaları okuyabilsin, 2) gerektiğinde belirli dizinlere yazılsa (upload gibi), 3) gereksiz “write” yetkisi verilmesin.

Web sunucusu kim? (en kritik kontrol)

Değer seçmeden önce, web sunucusunun hangi kullanıcı/gruba sahip olduğunu bilmeniz gerekir. Hosting panelinizde “web server user” bazen belirtilir; yoksa PHP hata logundan veya sunucu üzerinden kontrol edilir.

Örnek komutlar: - ls -ld /var/www/html - ps aux | grep -E 'nginx|apache' - id www-data (Debian/Ubuntu için)

Aynı sunucuda yanlış kullanıcıya write izni vermek güvenlik açığını büyütür.

WordPress için hedef izin şeması: dizin bazlı net değerler

Aşağıdaki şema, WordPress’in standart kurulum yapısına göre hazırlanmıştır. Dizinin adını, kurulum kökünü (document root) baz alarak kullanın.

WordPress kökü (document root)

Kök dizin: WordPress’in tüm uygulamasının bulunduğu üst seviye klasördür. - İzin hedefi: 755 - Amaç: Web sunucusu içerikleri okuyup dizinlere girebilsin.

wp-content dizini ve alt dizinler

WordPress’te yazılabilir olması gereken alanların çoğu wp-content altındadır.

wp-content (ana)

  • Dizin hedefi: 755
  • Amaç: Web sunucusu klasörleri listeleyebilsin; ancak rastgele yazma yetkisi vermeyelim.

wp-content/uploads

Dosya yükleme (medya), tema/eklenti üzerinden oluşturulan görseller bu dizinde birikir. - Dizin hedefi: 755 - Dosya hedefi: 644 - Amaç: PHP işlemleri bu dizine yazabilsin; diğer yetkisiz süreçler aynı düzeyde yazamasın.

Bazı kurulumlarda “uploads’e yazma” için kullanıcı/grup doğru olduğunda 755 yeterlidir. Gereksiz yere 777 kullanmayın.

wp-content/themes

Tema dosyaları genellikle statik okunur. - Dizin: 755 - Dosyalar: 644

wp-content/plugins

Eklentiler okunur; ancak güncelleme/otomasyon varsa yazma ihtiyacı doğabilir. - Dizin: 755 - Dosyalar: 644

wp-admin, wp-includes

Bu dizinler WordPress çekirdeğiyle ilgilidir; normalde web sunucusu yazmaz. - wp-admin dizin: 755 - wp-admin dosyalar: 644 - wp-includes dizin: 755 - wp-includes dosyalar: 644

wp-config.php ve kritik dosyalar

wp-config.php site ayarlarını taşır. Buraya “fazla izin” güvenlik açısından risk üretir. - wp-config.php: 640 veya 600 - Dizin/diğer kritik dosyalar: çoğu senaryoda 644 dosya, 755 dizin yeterlidir.

.htaccess ve benzeri dosyalar

Apache kullanıyorsanız .htaccess kritik rol oynar. - .htaccess: 644

İzin şeması özet tablosu

Aşağıdaki tablo, en çok kullanılan hedefleri tek ekranda görmeniz için hazırlanmıştır:

Yol (önek) Tür Hedef izin Neden
/public_html (WordPress kökü) dizin 755 Listeleme ve giriş; yazma yetkisi yok
/wp-admin dizin 755 Okuma ve gezinme
/wp-admin/* dosya 644 Çalıştırma gerekmez
/wp-includes dizin 755 Okuma
/wp-content dizin 755 Dizin erişimi
/wp-content/uploads dizin 755 Medya yükleme; yazma kontrollü
/wp-content/uploads/* dosya 644 Okuma; gereksiz yazma yok
/wp-content/themes dizin 755 Tema dosyaları okunur
/wp-content/plugins dizin 755 Eklentiler okunur
/wp-config.php dosya 640/600 Hassas içerik; düşük yetki
/.htaccess dosya 644 Kural okuma

Yanlış izinlerin belirti verdiği yerler (hızlı teşhis)

İzin hataları çoğu zaman “tek bir belirti” değil, birkaç farklı semptomla gelir.

En yaygın hatalar

  • Medya yükleme başarısız: “Dosya yüklenemedi” veya HTTP 403/500
  • Eklenti/tema güncelleme başarısız: WordPress güncelleme işlemi sırasında yazma engeli
  • 500 Internal Server Error: PHP/WordPress dosyaları okunamıyor veya .htaccess/konfig doğru çalışmıyor
  • Güncellemelerde dosya taşınamadı: wp-content alt dizinlerde yanlış sahiplik (ownership)

“chmod değil ownership sorun” olasılığı

Sıklıkla görülen durum: İzin değerleri doğru görünür, ancak dosya “başka bir kullanıcıya/gruba” aittir. Bu durumda web sunucusu yazamaz.

Kontrol: - ls -l wp-content/uploads - ls -l wp-config.php

İnceleme kriteri: - Web sunucusu kullanıcısı (ör. www-data/nginx/apache) ilgili dizinlerde yazma yetkisine sahip mi?

Güvenli şekilde izinleri düzeltme: adım adım

Aşağıdaki adımlar, kontrollü biçimde ilerlemenizi sağlar.

1) Kapsamı daraltın: en önce belirti veren dizini düzeltin

Örneğin sadece yükleme sorunu varsa ilk hedef genelde: - wp-content/uploads

Böylece gereksiz geniş çaplı chmod işlemi yapmazsınız.

2) Önce sahipliği (ownership) kontrol edin

Aynı izin bile farklı kullanıcılar için farklı sonuç verir.

Web sunucusu kullanıcısı örneği: - Ubuntu/Debian yaygın: www-data

Örnek yaklaşım (değerleri sunucunuza göre güncelleyin): - Dizinin sahibi: chown -R www-data:www-data wp-content

Burada komut örnek amaçlıdır. Hosting sağlayıcınızın kullanıcı adını bilmiyorsanız önce panelden veya dokümandan doğrulayın.

3) Ardından izinleri uygulayın (dosya/dizin ayrımı şart)

WordPress’te dizinlere “x” gerekir; dosyalara genelde çalıştırma verilmez.

Tipik düzeltme mantığı: - Dizinler: 755 - Dosyalar: 644

Komut örnekleri (kurulum köküne göre düzenleyin):

  • Dizinler için:
  • find . -type d -exec chmod 755 {} \;
  • Dosyalar için:
  • find . -type f -exec chmod 644 {} \;

uploads istisnası

uploads dizinine yazma gerekiyorsa ve sahiplik doğruysa 755 yeterlidir. Yalnızca “uygulama kullanıcı doğru değilse” 777 gibi yöntemler gereksiz risk yaratır.

4) wp-config.php için özel kural

wp-config.php için hedef daha kısıtlıdır: - chmod 640 wp-config.php

Bazı sistemlerde 600 daha uygundur; ancak WordPress’in aynı dosyaya erişim gerektirdiği kullanıcı/grup eşleşmeli.

Hızlı referans: Hangi değeri ne zaman kullanmamalısınız?

Aşağıdaki değerler pratikte çok kullanılır ama WordPress için sık yanlış sonuç verir.

  • 777: Güvenlik riski. Sadece “geçici teşhis” için, mümkün olan en kısa sürede geri alınmalıdır.
  • 666: Hassas dosyalar için uygun değildir; özellikle wp-config.php risklidir.
  • 755 + dosyalara execute (x) eklemek: Gereksiz yetki artışı. Dosyalar için 644 daha doğrudur.

Deneyip bırakmayın: değişiklikten sonra doğrulama kontrol listesi

İzinleri düzelttikten sonra şu testleri yapın. Her biri hangi izin eksikliğini yakaladığını gösterir.

  • Yönetici paneline giriş (wp-admin erişimi)
  • Medya > Yeni ekle ile dosya yükleme
  • Tema/eklenti güncelleme (mümkünse küçük bir eklenti ile)
  • Site önbellek varsa sayfa yenileme
  • Hata logu kontrolü: PHP hata günlüğü ve web sunucusu hata logu

Sonuç: Net bir aksiyon planı

WordPress’te dosya izinlerini “tek seferde her yere aynısını ver” yaklaşımıyla düzeltmeyin. İlk adım olarak sorunun çıktığı dizini (çoğunlukla wp-content/uploads) ve web sunucusunun çalışan kullanıcı/grubunu kontrol edin. Sonra dizinler 755 / dosyalar 644 temel şemasını koruyun; wp-config.php için 640 veya 600 kullanın. Bu sırayı takip ettiğinizde hem 500 hatalarını hem de yükleme/güncelleme problemlerini sistematik biçimde çözürsünüz.

İsterseniz sitenizdeki kurulum kök yolunu (ör. /public_html veya /var/www/html), web sunucusu türünüzü (Apache/Nginx) ve hatayı (örn. medya yükleme 403/500) paylaşırsanız, hedef izin şemasını birebir senaryonuza uyarlayacak şekilde netleştirebilirim.

Etiketler: #wordpress #dosya izinleri #chmod #vps #vds

Hosting karşılaştırması yapmaya hazır mısın?

100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.

Hosting Karşılaştır →

İlgili Yazılar

0 ürün seçildi