wp-config.php temel ayarları: Dosya & bellek, revizyonlar — SSH, SFTP, cPanel kurulum rehberi

Satış ortaklığı bildirimi v3.1
Satış ortaklığı bildirimi v3.2 (yalnızca mobil)

wp-config.php dosyası, bir WordPress web sitesinin en önemli yapılandırma dosyasıdır. WordPress'in veritabanına bağlanması ve çalışması için gereken temel bilgileri içerdiği için sitenin kalbi gibi çalışır.

Ⅰ. wp-config.php'nin görevi

Bu dosya aşağıdaki hassas ayarları içerir.

  • Veritabanı bağlantı bilgileri
  • ↳ WordPress içeriğini saklayan veritabanına bağlanmak için gereken bilgiler burada bulunur: MySQL veya MariaDB veritabanı adı, kullanıcı adı, şifre ve sunucu bilgisi gibi.
  • Güvenlik anahtarları ve salt değerleri
  • ↳ Kullanıcıların oturumlarını ve çerezlerini şifreleyerek güvenliği artıran benzersiz, rastgele karakter dizileridir. Bu anahtarlar olmadan oturumlar güvenli tutulamaz.
  • Diğer temel ayarlar
  • ↳ Tablo öneki, hata ayıklama modunun açılıp kapatılması, dosya düzenlemenin kapatılması gibi WordPress'in çalışma biçimini belirleyen önemli sabitler burada tanımlanır.
WordPress wp-config.php dosyası

Bu özellikleri yüzünden wp-config.php dosyası, dışarıdan gelen saldırganlar için birinci hedef olur. Dosya izinleri yanlış ayarlanır ya da içeriği açığa çıkarsa veritabanının tamamı sızabilir veya sitenin yönetim yetkisi ele geçirilebilir; bu da ciddi bir güvenlik açığına yol açar. Bu nedenle WordPress güvenliğini güçlendirmenin ilk adımı bu dosyayı güvence altına almaktır.

1️⃣ wp-config.php dosyasının konumu

wp-config.php, WordPress'in kurulu olduğu en üst klasörde, [wp-admin], [wp-content] ve [wp-includes] klasörleriyle aynı yerde bulunur. cPanel hostingde bu klasör [public_html]'dir; benim Lightsail VPS'imde dosya [/home/uknew/www/wp-config.php] konumundadır.

Dosyayı en üst klasörde göremiyorsanız bir üst klasöre bakın. WordPress, wp-config.php'yi önce kurulum klasöründe arar; orada yoksa hemen üstteki klasörden yükler.

2️⃣ wp-config.php nasıl açılır

Hosting kontrol panelindeki [Dosya Yöneticisi]'nde en üst klasöre gidin, wp-config.php'ye sağ tıklayıp [Edit]'i seçin. Bu yöntemle dosyayı ayrı bir program olmadan doğrudan tarayıcıda düzenleyebilirsiniz.

FTP programıyla (FileZilla) bağlanırsanız dosyayı bilgisayarınıza indirip bir düzenleyicide değiştirir, sonra yeniden yüklersiniz. Yüklemeden önce orijinalin bir kopyasını ayrıca saklarsanız hata olduğunda hemen geri dönebilirsiniz.

VPS gibi SSH ile bağlanılan sunucularda düzenleyici adının ([vi]) ardına dosya yolunu ekleyerek çalıştırırsınız; [nano] ile de aynı şekilde açabilirsiniz.

vi /home/uknew/www/wp-config.php

3️⃣ wp-config-sample.php ve temel yapı

Yeni indirilen WordPress paketinde wp-config.php yoktur; aynı yerde yalnızca [wp-config-sample.php] bulunur. Kurulum ekranında veritabanı bilgilerini girdiğinizde WordPress bu dosyayı temel alarak wp-config.php'yi oluşturur; dosyayı kendiniz kopyalayıp adını değiştirseniz de sonuç aynıdır.

define( 'DB_NAME', 'database_name_here' );
define( 'DB_USER', 'username_here' );
define( 'DB_PASSWORD', 'password_here' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

$table_prefix = 'wp_';

define( 'WP_DEBUG', false );

[DB_NAME], [DB_USER], [DB_PASSWORD] ve [DB_HOST] satırlarına hostingden aldığınız veritabanı bilgilerini yazarsınız. Değerlerden biri bile yanlışsa site yerine [Error establishing a database connection] hatası görünür.

[AUTH_KEY]'den [NONCE_SALT]'a kadar sekiz satır giriş çerezlerini şifreleyen değerlerdir; [https://api.wordpress.org/secret-key/1.1/salt/] adresinden yeni bir set alıp hepsini birden değiştirirsiniz. Değerleri değiştirince oturum açmış tüm kullanıcıların oturumu kapanır.

[$table_prefix], veritabanı tablo adlarının önüne eklenen önektir; varsayılan değeri [wp_]'dir ve tek bir veritabanına birden fazla WordPress kurulduğunda kurulumları birbirinden ayırır. [WP_DEBUG]'ı [true] yaparsanız PHP hataları ekranda görünür; bu yüzden yayındaki sitede [false] olarak bırakın.

Ⅱ. WordPress kurulumundan sonra uygulanan wp-config.php temel ayarları

Tüm ayar satırları /* That’s all, stop editing! Happy publishing. */ yorumunun üstüne yazılır. Aşağıdaki simülatörde SSH, cPanel ve FTP arasından bağlantı yöntemini seçip wp-config.php'yi açtığınızda soldan bastığınız ayarın satırına doğrudan gidilir.

⚙️ wp-config.php ayarlarıAyar simülatörü
/* That’s all, stop editing! Happy publishing. */
Teknik olarak bu yorum (/* That’s all, stop editing! Happy publishing. */) PHP kodu olarak özel bir iş yapmaz. Yalnızca bir yorum satırıdır.
user_a@server: ~
Last login: Mon Oct 5 14:10:02 2026 from 10.0.0.12
[user_a@server ~]$
Ancak WordPress geliştirme ekibinin kullanıcılara “bu yorumun altında WordPress'in çalışması için gereken temel kod var, dokunmayın” demek için bıraktığı bir ‘işaret‘ görevi görür.
  1. Ayar sabitleri (define) üstte: WordPress ayarlarıyla ilgili sabitlerin çoğu (define) /* That’s all, stop editing! Happy publishing. */ yorumunun hemen üstünde tanımlanmalıdır; böylece WordPress ayarları başlatırken bunları düzgün yükler.
  2. WordPress'in yüklenmesi altta başlar: Bu yorumun altında [ABSPATH] tanımı ve [require_once( ABSPATH . ‘wp-settings.php’ );] kodu bulunur. Bu [wp-settings.php] dosyası yüklendiği andan itibaren WordPress'in temel işlevleri gerçekten çalışmaya başlar.
Bu nedenle ek ayarlar (ör. dosya düzenlemeyi kapatma [define(‘DISALLOW_FILE_EDIT’, true);] ya da bellek sınırı belirleme [define(‘WP_MEMORY_LIMIT’, ‘256M’);]) yapmak istiyorsanız bunları WordPress'in temel yükleme dosyası çağrılmadan önce, yani yorumun hemen üstüne yazmalısınız; ancak o zaman hatasız uygulanır.
wp-config-sample.php'de [stop editing] yorumunun hemen üstünde bir yorum daha vardır: [Add any custom values between this line and the “stop editing” line.]. Kendi eklediğiniz ayarları bu iki yorumun arasına yazarsınız.
WordPress bellek ayarı
WordPress eğitimlerinde ve resmî belgelerde çoğunlukla [define(‘WP_MEMORY_LIMIT’, ‘256M’);] tek başına yer alır.
Bellek ayarı, WordPress'in PHP'de kullanabileceği en yüksek bellek miktarını belirleyerek tema veya eklentiler çalışırken bellek yetersizliği hatalarını (Fatal error: Allowed memory size exhausted) önlemek içindir. Yani sitenin kararlı çalışması ve kaynak aşımının önlenmesi için temel bir güvenlik önlemidir.
‘WP_MAX_MEMORY_LIMIT’, arka uca ön yüzden daha fazla bellek tanıyan bir yapıdır.
WP_MEMORY_LIMIT “site ziyaretçileri için bellek sınırı”dır,
WP_MAX_MEMORY_LIMIT ise “yönetim ve iç işlemler için genişletilmiş sınır”dır.
İkisini birlikte ayarladığınızda WordPress belleğini tam olarak kontrol etmek mümkün olur.
wp-config.php'deki değer sunucudaki php.ini veya PHP-FPM pool ayarından büyükse sunucu ayarı geçerli olur.
Revizyonları sınırlama
Revizyon sayısını belirlemek için ayrıca eklenti kurmanız gerekmez. Aşağıdaki tek satırlık sabiti wp-config.php'ye eklemek aynı sonucu verir ve ileride silmeniz gereken eklenti ayarları da veritabanında kalmaz.
WordPress revizyonları, yazıların düzenlenmeden önceki hâllerini biriktirmeye devam ettiği için web sitesi yavaşlar. Özellikle önbellek kurulu olmayan WordPress sitelerinde, önbellek kurulu olsa bile yönetim panelinde çalışırken, hele yazı veya sayfa içeriği hazırlarken ziyaretçi sayfaları bile yavaşlayabilir.
Örneğin sunucu toplam CPU'sunun yaklaşık %⁠50'sini kullanıyorsa, hangi önbellek eklentisini kullanırsanız kullanın ziyaretçi sayfalarının hızı düşebilir.
Bu yüzden revizyonları kapatır ya da sayılarını sınırlarsınız.
WP Rocket veya Perfmatters kullanıyorsanız bunu ayar ekranlarından da yönetebilirsiniz. WP Rocket [Database] sekmesindeki [Revisions] ile birikmiş revizyonları siler; sayıyı sınırlayan bir ayarı yoktur.
WP Rocket veritabanı revizyon temizleme ekranı
Perfmatters [Limit Post Revisions] ile yazı başına tutulacak revizyon sayısını, [Autosave Interval] ile otomatik kaydetme aralığını belirler.
Perfmatters revizyon sınırı ayarı
Otomatik kaydetme aralığını ayarlama
WordPress'te yazıların otomatik kaydetme aralığı varsayılan olarak 1 dakikadır. Örneğin bunu varsayılan 60 saniyeden 5 dakikaya (300 saniye) çıkarabilirsiniz.
Heartbeat ayarları
Heartbeat için wp-config.php'ye eklenecek bir sabit olmadığından bu dosyayla ayarlanamaz. Aşağıdaki kodu wp-config.php'ye eklerseniz WordPress [add_action] işlevini yüklemeden önce çalışır ve site [Call to undefined function add_action()] hatasıyla durur.
WordPress ‘Heartbeat’, sunucu ile web sitesinin bağlantısının sürüp sürmediğini kontrol eden bir sinyaldir. Heartbeat API, 
/wp-admin/admin-ajax.php dosyasını kullanarak web tarayıcısından AJAX çağrıları yapar. WordPress panelinde bu dosya nedeniyle her 15 saniyede bir POST isteği gönderilir.
Yalnızca yönetim panelindeki yazı yazma ekranları olan [post.php]·[post-new.php] sayfalarında çalışacak şekilde ayarlayabilirsiniz.
WP Rocket kullanıyorsanız [Heartbeat] sekmesinde yönetim ekranı, yazı düzenleyici ve ön yüz için ayrı ayrı [Do not limit], [Reduce activity] veya [Disable] seçeneklerinden birini seçersiniz.
WP Rocket Heartbeat ayarları ekranı
Perfmatters [Disable Heartbeat] ile Heartbeat'e izin verilecek ekranları, [Heartbeat Frequency] ile istek aralığını belirler.
Perfmatters Heartbeat ayarları
İki eklenti de yoksa yalnızca Heartbeat için ek eklenti kurmayın. Eklentiler silindikten sonra da ayarlarını veritabanında bıraktığından, aşağıdaki kodu temanızın [functions.php] dosyasına ekleyin.
/** Disable Heartbeat everywhere except post editor */
add_action('init', function() {
    global $pagenow;
    if ($pagenow != 'post.php' && $pagenow != 'post-new.php') {
        wp_deregister_script('heartbeat');
    }
}, 1);
Genel ayarlar
Genel ayarlar, bu yazıdaki tüm ayarların eklendiği wp-config.php'dir.
İki bellek satırı, 3 revizyon sınırı ve 300 saniyelik otomatik kaydetme, [stop editing] yorumunun üstünde sırayla yer alır.
Heartbeat, wp-config.php'ye eklenince hata verdiği için genel ayarlarda yer almaz.
Ekranın sağ üstündeki kopyala simgesine basınca yalnızca eklenecek satırlar kopyalanır.
Yalnızca tarayıcınızda çalışır ve gerçek bir dosyayı değiştirmez. Üstten bağlantı yöntemini seçip çiplere sırayla basarak wp-config.php'yi açtığınızda soldan seçtiğiniz ayarın satırına gidilir. Çipler yerine terminale tıklayıp komutları ve vi tuşlarını kendiniz de yazabilirsiniz. Sanal sunucuda yalnızca bu yazı için gereken dosyalar vardır; cPanel ve FileZilla ekranları gerçek ekranların sadeleştirilmiş çizimleridir.

🔢 SSS & önerilen içerikler

Az önce kaydettiğiniz satırda tırnak işareti veya noktalı virgül eksikse PHP wp-config.php'yi sonuna kadar okuyamaz ve site açılmaz. Düzenlemeden önce sakladığınız orijinale geri dönün, sonra yalnızca değiştirdiğiniz satırları kontrol edin.

wp-config.php güvenliği yazısı yalnızca sahibinin okuyup yazabildiği [600] iznini önerir. PHP'nin dosya sahibinden farklı bir hesapla çalıştığı sunucularda 600 izniyle dosya okunamaz; bu yüzden değiştirdikten sonra sitenin açıldığını hemen kontrol edin.

WP Rocket etkinleştirildiğinde dosyanın en üstüne [define( ‘WP_CACHE’, true ); // Added by WP Rocket] satırını ekler; benim wp-config.php dosyamda da bu satır 2. satırdadır. WordPress önbellek dosyası [advanced-cache.php]'yi ancak bu satır varken yükler.

Aynı sabit dosyanın üst kısmında zaten tanımlıysa PHP önce tanımlanan değeri kullanır ve alttaki satır için yalnızca [Constant WP_MEMORY_LIMIT already defined] uyarısı bırakır. Hostingin veya bir eklentinin eklediği satır olup olmadığını görmek için dosyanın tamamında sabitin adını arayın.

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 9   +   9   =