WordPress wp-config.php Dosyası: Görevi ve Düzenlenmesi
wp-config.php dosyası veritabanı girişini, güvenlik anahtarlarını ve site ayarlarını tutar. Nerede olduğunu, ne yaptığını ve güvenle düzenlemeyi öğrenin.
wp-config.php, WordPress’e veritabanına nasıl bağlanacağını ve nasıl çalışacağını söyleyen dosyadır. Normalde kurulumunuzun kök klasöründe, wp-admin ve wp-content klasörlerinin yanında durur. “That’s all, stop editing!” (Hepsi bu kadar, düzenlemeyi bırakın!) satırının üstünde ayar ekleyip değiştirmek güvenlidir; o satırın altındaki iki kod bloğuna ise dokunmamalısınız. Önce yedek alın, çünkü tek bir yazım hatası bütün siteyi kapatabilir.
Önemli noktalar
- Dosya, veritabanı şifrenizi ve güvenlik anahtarlarınızı tutar. Ona bir şifre gibi davranın ve içeriğini asla bir foruma veya destek sohbetine yapıştırmayın.
- Özel ayarlar “stop editing” satırının üstüne gider. Altındaki son satır WordPress’i yükler ve o satırdan sonraki bir ayar çok geç kalır.
- İndirdiğiniz WordPress paketinde
wp-config-sample.phpbulunur. Asılwp-config.phpkurulum sırasında oluşturulur.- Canlı bir sitede
$table_prefixdeğerini yalnızca o satırı düzenleyerek değiştirmeyin. WordPress kurulu değilmiş gibi davranır.
wp-config.php dosyasını nerede bulursunuz
SFTP ile bağlanın veya barındırma firmanızın dosya yöneticisini açın, ardından wp-admin, wp-includes ve wp-content klasörlerini barındıran klasöre gidin. WordPress belgeleri burayı WordPress dosya dizininizin kökü olarak adlandırır.
Orada değilse bir üst klasöre bakın. WordPress’in yükleyicisi önce kurulum klasörünü, sonra üst klasörü kontrol eder. Üst klasörün kendi wp-settings.php dosyası varsa onu atlar, çünkü bu orada başka bir WordPress kurulumu olduğu anlamına gelir.
Dosya iki yerde de yoksa WordPress ziyaretçileri kurulum ekranına gönderir. Bu ekran dosyayı wp-config-sample.php üzerinden oluşturur. Klasöre yazamazsa yeni bir dosyaya elle yapıştırmanız için metni gösterir.
Varsayılan bölümlerin her biri ne yapar
wp-config-sample.php şablondur ve şu bölümleri bu sırayla içerir:
| Bölüm | Ne tutar | Değiştirebilir misiniz? |
|---|---|---|
DB_NAME, DB_USER, DB_PASSWORD, DB_HOST | Veritabanı girişi. Örnek dosya sunucu olarak localhost kullanır, gerçek değerleri barındırma firmanız verebilir. | Evet, veritabanı bilgileriniz değiştiğinde. Yanlış bir değer veritabanı bağlantısı kurma hatasına yol açar. |
DB_CHARSET, DB_COLLATE | Veritabanı metninin nasıl saklandığı. Varsayılanlar utf8mb4 ve boş bir değerdir. | Örnek dosyanın DB_COLLATE için kendi yorumu, emin değilseniz değiştirmemenizi söyler. |
AUTH_KEY ile NONCE_SALT arası | Giriş çerezleri için kullanılan sekiz güvenlik anahtarı ve tuz değeri. | Evet. Değiştirmek tüm kullanıcıların oturumunu kapatır. |
$table_prefix | Her veritabanı tablosu adının başındaki metin, varsayılan olarak wp_. | Yalnızca kurulum sırasında, tabloları yeniden adlandırıp adında bu önek geçen kayıtlı veritabanı girdilerini de güncellemiyorsanız. |
WP_DEBUG | Hata ayıklama modu, örnek dosyada false olarak ayarlıdır. | Evet. Hata ayıklama günlüğü konumu rehberi hataları bir dosyaya nasıl göndereceğinizi gösterir. |
| ”custom values” (özel değerler) yorumu | Kendi ayarlarınız için ayrılmış, “stop editing” satırında biten boş alan. | Evet, eklemeleriniz buraya gider. |
ABSPATH ve wp-settings.php satırı | WordPress’in yolu, ardından geri kalanını yükleyen satır. | Hayır. Bunları olduğu gibi bırakın. |
Yeni anahtarlar bir tık uzağınızda: WordPress.org gizli anahtar hizmeti her yüklediğinizde yeni bir set verir. Sekiz satırın tümünü yeni setle değiştirin.
Eski dosyalarda “custom values” yorumu olmayabilir ve “Happy publishing” (İyi yayınlar) yerine “Happy blogging” (İyi bloglamalar) yazabilir. İkisi de çalışır ve kural aynı kalır: ayarlarınızı o satırın üstüne ekleyin.
Sık değiştirilen ayarlar
Bunların her biri tek satırdır. Hepsi wp-config.php belgelerinden, varsayılan değerler ise WordPress’in default-constants.php dosyasından gelir.
// Memory for the front end, then for wp-admin
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
// Keep at most 3 revisions per post (false turns revisions off)
define( 'WP_POST_REVISIONS', 3 );
// Autosave every 180 seconds
define( 'AUTOSAVE_INTERVAL', 180 );
// Empty the trash after 7 days
define( 'EMPTY_TRASH_DAYS', 7 );
// Remove the theme and plugin file editor from wp-admin
define( 'DISALLOW_FILE_EDIT', true );
// Force HTTPS for logins and wp-admin
define( 'FORCE_SSL_ADMIN', true );
// Set the site addresses here
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );
Yalnızca ihtiyacınız olan satırları kopyalayın. Birkaçının bilinmeye değer ayrıntıları var:
- Bellek: WordPress varsayılan olarak 40M, çoklu sitede 64M kullanır; wp-admin için de PHP zaten daha fazlasına izin vermiyorsa 256M kullanır. Barındırma firmanız limitin değiştirilmesine izin vermiyorsa WordPress, PHP’nin mevcut limitini kullanır. Bu durumda ne yapacağınızı bellek tükendi rehberi anlatır.
- Revizyonlar: varsayılan olarak açıktır. Kapatmak için
false, sınırlamak için bir sayı girin. - Otomatik kaydetme ve çöp kutusu: varsayılanlar 60 saniye ve 30 gündür.
EMPTY_TRASH_DAYSdeğerini0yapmak çöp kutusunu kapatır. Belgeler, bu durumda birisi “Delete Permanently” (Kalıcı Olarak Sil) düğmesine tıkladığında WordPress’in onay istemeyeceği konusunda uyarır. - Dosya düzenleyici: güvenlik rehberi bunun bir saldırganın kötü amaçlı dosya yüklemesini engellemeyeceğini, ancak bazı saldırıları durdurabileceğini söyler.
DISALLOW_FILE_MODSdaha ileri gider; eklenti ve tema kurulumlarını ve güncellemelerini de engeller. - HTTPS: “WordPress adresi” ayarı zaten
httpsile başlıyorsa WordPressFORCE_SSL_ADMINdeğerini kendisitrueyapar. Bu satır yalnızca adreshttpsile başlamadığında bir şeyi değiştirir. - Site adresleri: bunlar, veritabanında saklananı değiştirmeden kayıtlı değerleri geçersiz kılar.
https://kısmını da yazın.
Bir ayar daha fazla planlama ister. define( 'DISABLE_WP_CRON', true ); sayfa ziyaretlerinin zamanlanmış görevleri başlatmasını durdurur. Bu yüzden açmadan önce wp-cron.php için bir sunucu cron görevi kurun, yoksa zamanlanmış yazılar ve diğer zamanlı işler çalışmaz.
wp-config.php dosyasını güvenle düzenleme
- Önce bir kopya indirin. Kendi bilgisayarınızda saklayın. Sunucuda
wp-config.php.bakgibi bir adla bırakılan kopya tarayıcıdan okunabilir, çünkü sunucu artık onu PHP olarak işlemez. - Dosyayı düz metin düzenleyicisinde açın. WordPress’in düzenleme rehberi Notepad++, Sublime Text ve Visual Studio Code’u uygun sayar. Google Docs ve Microsoft Word’e karşı ise uyarır, çünkü kelime işlemciler tırnak işaretlerini değiştirir ve dosyaları bozan kod ekleyebilir.
- “stop editing” satırını bulun ve yeni satırlarınızı hemen üstüne koyun. Ayar daha yukarıda zaten tanımlıysa o satırı değiştirin.
- Kaydedip yükleyin, ardından sitenizi gizli bir tarayıcı penceresinde açın, wp-admin’den de bir sayfaya bakın.
- Bir şey bozulursa kopyanızı geri koyun. Bu, wp-admin yüklenmese bile düzenlemeyi geri alır.
Dosyayı web kökünün üstüne taşıma
Güvenlik rehberi wp-config.php dosyasının WordPress kurulumunuzun bir üst klasöründe saklanabileceğini söyler ve yükleyici kodu bunu ek ayar gerektirmeden halleder. Dosyayı taşıyın, ardından sitenin hâlâ yüklendiğini kontrol edin. Taşımanın iki sınırı var:
- Üst klasörde başka bir WordPress kurulumu olamaz. Yükleyici, kendi
wp-settings.phpdosyası olan üst klasörü yok sayar. - Bir üst klasör yalnızca WordPress web kökündeyse özeldir. WordPress
/blog/gibi bir alt klasördeyse bir üst klasör genellikle yine herkese açıktır.
Aynı rehber, bazı kişilerin bu taşımanın güvenliğe çok az katkı sağladığını savunduğunu ve dikkatsizce yapılırsa ciddi açıklara yol açabileceğini belirtir. O yüzden isteğe bağlı görün. Rehber Apache için .htaccess dosyanızın en üstüne konacak, dosyaya doğrudan istekleri reddeden şu bloğu da verir:
<Files "wp-config.php">
Require all denied
</Files>
.htaccess güvenlik rehberimiz bu kuralı diğerleriyle birlikte ele alır.
wp-config.php dosya izinleri
WordPress belgeleri duruma göre biraz farklı sayılar verir:
- Güvenlik rehberi dosyayı yalnızca sizin ve web sunucusunun okuyabilmesi gerektiğini ve bunun genellikle 400 veya 440 anlamına geldiğini söyler.
- Dosya izinleri rehberi, sunucudaki diğer kullanıcıların okumasını önlemek için suexec’li paylaşımlı barındırmada 440 veya 400 der. Güvenli bir örnek olarak 600’ü de gösterir.
- Sıradan WordPress dosyaları için aynı rehber 644 veya 640 der.
Hangi sayının işe yarayacağı, web sunucunuzun hangi sistem kullanıcısıyla çalıştığına bağlıdır. Web sunucusunun dosyayı okuyabilmesi gerekir, bu yüzden bir değişiklikten sonra site yüklenmeyi bırakırsa önceki değere dönün ve barındırma firmanıza hangisinin kurulumlarına uyduğunu sorun.
Sık yapılan hatalar
- Bir ayarı
wp-settings.phpsatırından sonra yapıştırmak. O satır WordPress’i yükler ve varsayılanlarını ayarlar. Bir PHP sabiti betik çalışırken değişemez, bu yüzden satırınızın etkisi olmaz. - Aynı ayarı iki kez tanımlamak. İlk satır değeri belirler, ikincisi onu değiştiremez. PHP kılavuzuna göre bir sabiti yeniden bildirmek PHP 8.5’ten itibaren kullanımdan kaldırılmıştır, bu yüzden bir ileti de çıkabilir. Eklemeden önce dosyada adı arayın.
- true veya false değerini tırnak içine almak.
'false'boş olmayan bir dizedir ve PHP bunu true sayar. Tırnaksızfalseyazın.'256M'gibi boyutlar ise tırnak ister. - Kelime işlemciden veya web sayfasından gelen kıvrık tırnaklar. PHP düz tırnak ister, bu yüzden kıvrık tırnaklar sitenin yüklenmesini engelleyen bir hataya yol açar.
- Canlı sitede hata ayıklama hatalarını göstermek.
WP_DEBUG_DISPLAYvarsayılan olaraktruedeğerindedir, yani yalnızcaWP_DEBUGdeğerini açarsanız hatalar ziyaretçilere sayfada görünür. Hata ayıklama günlüğü konumu rehberi bunları bir dosyaya nasıl göndereceğinizi gösterir. WP_ALLOW_REPAIRdeğerini açık bırakmak. Belgeler bunu yalnızca gerektiğinde açmanızı ve sorun çözülünce kapatmanızı söyler.
Sık sorulan sorular
WordPress’te wp-config.php nedir?
WordPress’in başlarken yüklediği yapılandırma dosyasıdır. Veritabanı girişini, güvenlik anahtarlarını ve tablo önekini tutar. WP_DEBUG veya WP_MEMORY_LIMIT gibi ayarları da buraya eklersiniz.
wp-config.php dosyası nerede bulunur?
Normalde WordPress kurulumunuzun kök klasöründedir, yani wp-admin, wp-includes ve wp-content klasörlerinin de bulunduğu yerde. WordPress, içinde wp-settings.php olmadığı sürece dosyayı kurulumun bir üst klasöründe de kabul eder.
wp-config.php içinde kodu nereye eklemeliyim? That’s all, stop editing! Happy publishing. (Hepsi bu kadar, düzenlemeyi bırakın! İyi yayınlar.) yazan satırın üstüne. Eski dosyalarda Happy blogging. (İyi bloglamalar.) yazar. Altındaki son satır WordPress’i yükler, bu yüzden o satırdan sonra konan bir ayar çok geç kalır.
wp-config.php dosyasını düzenlemek güvenli mi? Evet, yedek alır ve düz metin düzenleyicisi kullanırsanız güvenlidir. Tek bir yazım hatası, wp-admin dahil tüm sitenin yüklenmesini engelleyebilir, bu yüzden önce bir kopya indirin. Düzenlemeden sonra site bozulursa kopyayı geri koyun.
wp-config.php dosyasını silersem ne olur? WordPress veritabanı girişini artık bulamaz ve yapılandırma dosyası oluşturmanızı isteyen kurulum sürecini başlatır. İçeriğiniz veritabanında kalır, bu yüzden yedeği geri yüklemek veya dosyayı aynı bilgilerle yeniden oluşturmak siteyi tekrar bağlar.
wp-config.php dosyasının izinleri ne olmalı? WordPress’in güvenlik rehberi dosyayı yalnızca sizin ve web sunucusunun okuyabilmesi gerektiğini söyler, bu da genellikle 400 veya 440 anlamına gelir. Dosya izinleri rehberinde 600 de gösterilir. Web sunucusunun dosyayı yine de okuyabilmesi gerekir, bu yüzden site yüklenmeyi bırakırsa barındırma firmanıza danışın.
Kaynaklar
- WordPress Advanced Administration: wp-config.php, Hardening WordPress, Dosya izinleri, Dosya düzenleme
- WordPress kaynak kodu: wp-config-sample.php, wp-load.php, default-constants.php, setup-config.php, cron.php
- PHP kılavuzu: Sabitler, Boolean değerler
Güvenlik anahtarları dahil ihtiyacınız olan ayarları elle yazmadan ücretsiz wp-config.php oluşturucu ile hazırlayın.
FAQ
Sorular
WordPress'te wp-config.php nedir?
WordPress'in başlarken yüklediği yapılandırma dosyasıdır. Veritabanı girişini, güvenlik anahtarlarını ve tablo önekini tutar. WP_DEBUG veya WP_MEMORY_LIMIT gibi ayarları da buraya eklersiniz.
wp-config.php dosyası nerede bulunur?
Normalde WordPress kurulumunuzun kök klasöründedir, yani wp-admin, wp-includes ve wp-content klasörlerinin de bulunduğu yerde. WordPress, içinde wp-settings.php olmadığı sürece dosyayı kurulumun bir üst klasöründe de kabul eder.
wp-config.php içinde kodu nereye eklemeliyim?
That's all, stop editing! Happy publishing. (Hepsi bu kadar, düzenlemeyi bırakın! İyi yayınlar.) yazan satırın üstüne. Eski dosyalarda Happy blogging. (İyi bloglamalar.) yazar. Altındaki son satır WordPress'i yükler, bu yüzden o satırdan sonra konan bir ayar çok geç kalır.
wp-config.php dosyasını düzenlemek güvenli mi?
Evet, yedek alır ve düz metin düzenleyicisi kullanırsanız güvenlidir. Tek bir yazım hatası, wp-admin dahil tüm sitenin yüklenmesini engelleyebilir, bu yüzden önce bir kopya indirin. Düzenlemeden sonra site bozulursa kopyayı geri koyun.
wp-config.php dosyasını silersem ne olur?
WordPress veritabanı girişini artık bulamaz ve yapılandırma dosyası oluşturmanızı isteyen kurulum sürecini başlatır. İçeriğiniz veritabanında kalır, bu yüzden yedeği geri yüklemek veya dosyayı aynı bilgilerle yeniden oluşturmak siteyi tekrar bağlar.
wp-config.php dosyasının izinleri ne olmalı?
WordPress'in güvenlik rehberi dosyayı yalnızca sizin ve web sunucusunun okuyabilmesi gerektiğini söyler, bu da genellikle 400 veya 440 anlamına gelir. Dosya izinleri rehberinde 600 de gösterilir. Web sunucusunun dosyayı yine de okuyabilmesi gerekir, bu yüzden site yüklenmeyi bırakırsa barındırma firmanıza danışın.