15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
21.10.2024

WordPress Yönetici Parolanızı Manuel Olarak Nasıl Sıfırlarsınız

WordPress yönetici hesabınıza erişimi kaybetmek, sitenizin kontrolünü kaybetmek anlamına gelmek zorunda değildir. Standart “Şifrenizi mi unuttunuz?” e-posta akışı bozuksa — yanlış yapılandırılmış posta ayarları, erişilemeyen bir e-posta adresi veya bozuk bir kullanıcı kaydı nedeniyle — şifreyi doğrudan veritabanı, dosya sistemi veya kabuk düzeyinde sıfırlayarak bu adımı tamamen atlayabilirsiniz.

Bu kılavuz dört savaşta test edilmiş yöntemi kapsamaktadır: phpMyAdmin, functions.php aracılığıyla FTP, SSH üzerinden WP-CLI ve WordPress Acil Durum Şifre Sıfırlama Betiği. Her yöntem, tam adımlar, güvenlik uyarıları ve doğru seçim olduğu belirli senaryolarla açıklanmaktadır.

Standart Sıfırlama Akışı Başarısız Olduğunda

Manuel bir yönteme başvurmadan önce, yerleşik sıfırlamanın neden bozulduğunu anlayın. En yaygın nedenler şunlardır:

  • Bozuk WordPress posta teslimiwp_mail(), PHP’nin mail() işlevine veya bir SMTP eklentisine bağlıdır. Hiçbiri yapılandırılmamışsa, sıfırlama e-postası sessizce düşürülür.
  • Kayıtlı e-posta gelen kutusuna erişim yok — hesap, artık kullanılmayan bir adresle oluşturulmuştu.
  • Bozuk wp_users tablosu — nadir, ancak başarısız bir geçiş veya eklenti çakışmasından sonra mümkündür.
  • wp-admin’den tamamen kilitlenme — kaba kuvvet koruma eklentileri (Wordfence, Limit Login Attempts), sıfırlama uç noktasının kendisini engelleyebilir.

Temel nedeni belirlemek önemlidir çünkü bazı yöntemler (WP-CLI, phpMyAdmin) posta sistemine hiç dokunmadan şifreyi düzeltirken, diğerleri (acil durum betiği) siteye HTTP erişimi gerektirir.

Yöntem 1: phpMyAdmin Aracılığıyla Şifreyi Sıfırlama

En uygun olduğu durum: SSH’nin kullanılamadığı ancak cPanel veya benzer bir kontrol panelinin erişilebilir olduğu paylaşımlı barındırma ortamları.

phpMyAdmin, tüm WordPress kullanıcı kimlik bilgilerini depolayan MySQL veya MariaDB veritabanına doğrudan okuma/yazma erişimi sağlar. Şifreler bcrypt karmaları (WordPress 6.x+) veya MD5 karmaları (eski kurulumlar) olarak depolanır. phpMyAdmin’in yerleşik işlev seçici, karmalamayı otomatik olarak gerçekleştirir.

Adım 1: Kontrol Panelinizden phpMyAdmin’i Açın

Barındırma kontrol panelinize — cPanel, DirectAdmin veya özel bir panel — giriş yapın. Veritabanları bölümünü bulun ve phpMyAdmin‘e tıklayın. cPanel’li bir VPS kullanıyorsanız, yol genellikle cPanel > Veritabanları > phpMyAdmin şeklindedir.

Adım 2: WordPress Veritabanını Seçin

Sol taraftaki kenar çubuğunda, WordPress kurulumunuzla ilişkili veritabanı adına tıklayın. Hangi veritabanının doğru olduğundan emin değilseniz, sitenizin kök dizinindeki wp-config.php dosyasını açın ve DB_NAME sabitini arayın.

Adım 3: wp_users Tablosunu Açın

Veritabanı tablolarını genişletin ve wp_users üzerine tıklayın. Kurulumunuz özel bir tablo öneki kullanıyorsa (wp-config.php içindeki $table_prefix tarafından tanımlanır), tablo <prefix>_users olarak adlandırılacaktır — örneğin, site7_users.

Adım 4: Yönetici Kullanıcı Satırını Düzenleyin

  1. user_login değerinin yönetici kullanıcı adınızla eşleştiği satırı bulun. Çoğu varsayılan kurulumda bu, ID = 1 olan satırdır.
  2. Düzenle‘ye (kalem simgesi) tıklayın.
  3. user_pass alanını bulun.
  4. user_pass yanındaki İşlev açılır menüsünde MD5‘i seçin.
  5. Değer alanına yeni şifrenizi düz metin olarak yazın.
  6. Aşağı kaydırın ve Git‘e tıklayın.

Önemli teknik not: Burada MD5’i seçmek, anında giriş için yeterlidir çünkü WordPress, girişte eski MD5 kontrolü gerçekleştirir ve ardından başarılı kimlik doğrulamasında şifreyi daha güçlü phpass veya bcrypt algoritmasını kullanarak otomatik olarak yeniden karmalar. Bir bcrypt karmasını manuel olarak oluşturmanız gerekmez.

Adım 5: Değişikliği Doğrulayın

WordPress giriş sayfanıza gidin ve yeni şifreyle oturum açın. Giriş başarılı olursa, WordPress veritabanındaki karmayı sessizce mevcut algoritmaya yükseltecektir.

Yöntem 2: functions.php Dosyasını Değiştirerek FTP Aracılığıyla Şifreyi Sıfırlama

En uygun olduğu durum: phpMyAdmin’in kullanılamadığı ancak FTP/SFTP kimlik bilgilerinin erişilebilir olduğu durumlar.

Bu yöntem, aktif temanın functions.php dosyasına geçici olarak kod ekleyerek WordPress’in yürütme döngüsüne doğrudan bir şifre sıfırlama çağrısı enjekte eder.

Adım 1: FTP Aracılığıyla Bağlanın

FileZilla veya Cyberduck gibi bir FTP istemcisi kullanın. FTP ana bilgisayarınızı, kullanıcı adınızı, şifrenizi ve portu girin (düz FTP için 21, SFTP için 22 — mevcut olduğunda her zaman SFTP’yi tercih edin). Şuraya gidin:

/public_html/wp-content/themes/<your-active-theme>/

wp-admin’e giriş yapmadan hangi temanın aktif olduğunu doğrulamak için, phpMyAdmin’deki wp_options tablosunda template seçenek anahtarını kontrol edin.

Adım 2: functions.php Dosyasını İndirin ve Düzenleyin

functions.php dosyasını yerel makinenize indirin. Bir kod düzenleyicide açın (VS Code, Sublime Text veya BOM olmadan UTF-8 kodlamasını koruyan herhangi bir düzenleyici). Dosyanın en altına aşağıdaki satırı ekleyin:

<?php
// Temporary password reset — REMOVE IMMEDIATELY AFTER USE
add_action( 'init', function() {
    wp_set_password( 'YourNewSecurePassword123!', 1 );
});

'YourNewSecurePassword123!' kısmını seçtiğiniz şifreyle değiştirin. İkinci argüman (1) kullanıcı kimliğidir. Yönetici hesabınız ID 1 değilse, doğru kimliği onaylamak için önce wp_users tablosunu sorgulayın.

Çağrıyı add_action( 'init', ... ) içine sarmak, wp_set_password() işlevini doğrudan dosyanın üst düzeyinde çağırmaktan daha güvenlidir; çünkü yürütmeden önce WordPress çekirdek işlevlerinin tamamen yüklendiğini garanti eder.

Adım 3: Yükleyin ve Giriş Yapın

Dosyayı kaydedin ve orijinalin üzerine yazarak sunucuya geri yükleyin. init kancasını tetiklemek ve şifre değişikliğini yürütmek için WordPress sitenizin herhangi bir sayfasını (ana sayfa bile olsa) yükleyin. Ardından /wp-login.php adresine gidin ve yeni şifreyle giriş yapın.

Adım 4: Kodu Hemen Kaldırın

Bu adım zorunludur. Sıfırlama kodunu functions.php içinde bırakmak, her sayfa yüklemesinin şifreyi sabit kodlanmış değere sıfırlaması anlamına gelir ve bu kritik bir güvenlik açığı oluşturur. functions.php dosyasını tekrar indirin, eklediğiniz satırları silin ve yeniden yükleyin.

Yöntem 3: WP-CLI Aracılığıyla Şifreyi Sıfırlama (SSH Komut Satırı)

En uygun olduğu durum: VPS veya özel sunucuya SSH erişimi olan geliştiriciler ve sistem yöneticileri. Bu en hızlı ve en temiz yöntemdir.

WP-CLI, WordPress için resmi komut satırı arayüzüdür. Bir tarayıcıya dokunmadan kullanıcıları, eklentileri, temaları ve veritabanı işlemlerini yönetebilir. VPS Hosting planında veya Dedicated Server üzerinde WordPress çalıştırıyorsanız, WP-CLI neredeyse kesinlikle mevcut veya kolayca kurulabilir durumdadır.

Adım 1: WP-CLI’nin Kurulu Olduğunu Doğrulayın

wp --info

Komut bulunamazsa, kurun:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

Adım 2: WordPress Kök Dizinine Gidin

cd /var/www/html

Yolu gerçek belge köküyle eşleşecek şekilde ayarlayın. wp-config.php dosyasını kontrol ederek doğru dizinde olduğunuzu doğrulayabilirsiniz:

ls wp-config.php

Adım 3: Şifreyi Sıfırlayın

wp user update 1 --user_pass="YourNewSecurePassword123!" --allow-root

--allow-root bayrağı, komutu root kullanıcısı olarak çalıştırıyorsanız gereklidir. Gerekirse 1 kısmını gerçek kullanıcı kimliğiyle değiştirin. Önce doğru kimliği aramak için:

wp user list --fields=ID,user_login,user_email --allow-root

Adım 4: Güncellemeyi Onaylayın

WP-CLI tamamlandığında Success: Updated user 1. çıktısını verecektir. Değişikliği hemen doğrulayabilirsiniz:

wp user get 1 --field=user_pass --allow-root

Bu, kaydın güncellendiğini doğrulayan yeni bcrypt karmasını döndürür. İşlemi tamamlamak için wp-admin’e giriş yapın.

Uç durum — çoklu site kurulumları: WordPress Multisite’ta, doğru alt siteyi hedeflemek için komutun önüne --url=yoursite.com ekleyin:

wp user update 1 --user_pass="YourNewSecurePassword123!" --url=yoursite.com --allow-root

Yöntem 4: WordPress Acil Durum Betiği Aracılığıyla Şifreyi Sıfırlama

En uygun olduğu durum: FTP erişiminiz olduğu ancak SSH, phpMyAdmin olmadığı ve functions.php yönteminin pratik olmadığı senaryolar (örneğin, aktif tema functions.php içermeyen bir blok temasıdır).

WordPress Codex, WordPress kurulumundan bağımsız olarak çalışan bağımsız bir PHP acil durum sıfırlama betiği (emergency.php) sağlar. Yeni bir şifre ister, doğru şekilde karmalar ve wp-config.php dosyasındaki kimlik bilgilerini kullanarak doğrudan veritabanına yazar.

Adım 1: Betiği Edinin

Betiği resmi WordPress GitHub deposundan veya Codex’ten indirin. Kanonik kaynak şudur:

https://codex.wordpress.org/Resetting_Your_Password#Through_the_emergency_password_reset_script

Dosyayı emergency.php olarak kaydedin.

Adım 2: WordPress Köküne Yükleyin

FTP istemcinizi kullanarak emergency.php dosyasını wp-config.php içeren aynı dizine yükleyin — genellikle /public_html/ veya /var/www/html/.

Adım 3: Betiği Bir Tarayıcıda Çalıştırın

Bir tarayıcı açın ve şuraya gidin:

https://yourdomain.com/emergency.php

Betik, veritabanı kimlik bilgilerini almak için wp-config.php dosyasını otomatik olarak okuyacak, ardından yeni bir şifre girmek ve onaylamak için bir form sunacaktır. Değişikliği uygulamak için formu gönderin.

Adım 4: Betiği Hemen Silin

Bu kritik öneme sahiptir. Betiğin kimlik doğrulama katmanı yoktur — URL’yi bilen veya tahmin eden herhangi biri, sitenizi ele geçirmek için kullanabilir. Erişimi yeniden kazandığınız anda silin:

rm /var/www/html/emergency.php

Veya FTP aracılığıyla silin. URL’yi tekrar yüklemeye çalışarak silmeyi doğrulayın — 404 döndürmesi gerekir.

Yöntem Karşılaştırması

YöntemSSH GerektirirFTP GerektirirDB Erişimi GerektirirTema Dosyalarını DeğiştirirHızAktif Bırakılırsa Güvenlik Riski
phpMyAdminHayırHayırEvet (panel aracılığıyla)HayırHızlıYok
FTP aracılığıyla `functions.php`HayırEvetHayırEvetOrtaKritik
SSH aracılığıyla WP-CLIEvetHayırHayırHayırEn HızlıYok
Acil Durum BetiğiHayırEvetHayırHayırOrtaKritik

Şifre Sıfırlamasından Sonra Güvenliği Güçlendirme

Erişimi yeniden kazanmak yalnızca ilk adımdır. Zorla yapılan manuel bir sıfırlama genellikle daha derin bir soruna işaret eder — ele geçirilmiş bir hesap, yanlış yapılandırılmış bir sunucu veya bozuk bir posta yığını. Bunları hemen ele alın:

  • Son girişleri denetleyin. Aktif oturumları görmek için wp_usermeta içinde session_tokens değerini kontrol edin. wp user session destroy --all --allow-root ile tüm oturumları sonlandırın.
  • Gizli anahtarları değiştirin. https://api.wordpress.org/secret-key/1.1/salt/ adresinde yeni değerler oluşturun ve wp-config.php içindeki ilgili sabitleri değiştirin. Bu, mevcut tüm çerezleri geçersiz kılar.
  • WordPress e-posta teslimini düzeltin. Bir SMTP eklentisi (WP Mail SMTP, Postman SMTP) kurun ve standart sıfırlama akışının gelecekte çalışması için bir işlemsel posta hizmetine (SendGrid, Mailgun, Amazon SES) bağlayın.
  • İki faktörlü kimlik doğrulamayı etkinleştirin. WP 2FA veya Google Authenticator gibi eklentiler, kaba kuvvet kilitlenmelerini çok daha az olası kılan ikinci bir doğrulama katmanı ekler.
  • Dosya izinlerini gözden geçirin. wp-config.php değeri 640 veya 600 olmalıdır. functions.php dosyası 644 olmalıdır. Dünya tarafından yazılabilir dosyalar (777) anında kırmızı bayraktır.
  • Yetkisiz yönetici hesaplarını kontrol edin. wp user list --role=administrator --allow-root komutunu çalıştırın ve tanımadığınız hesapları kaldırın.

Dedicated Server üzerinde barındırılan üretim ortamları için, kilitlemeye önceden eşlik etmiş olabilecek SSH kaba kuvvet girişimleri açısından /var/log/auth.log (veya RHEL tabanlı sistemlerde /var/log/secure) dosyasını da inceleyin.

Siteniz hassas kullanıcı verilerini veya e-ticaret işlemlerini işliyorsa, kimlik bilgilerinin hiçbir zaman düz metin olarak iletilmemesini sağlamak için güçlendirilmiş girişinizi düzgün şekilde verilmiş bir SSL Sertifikası ile eşleştirin.

Karar Matrisi: Hangi Yöntemi Kullanmalısınız?

Durumunuz için doğru yöntemi seçmek üzere bu kontrol listesini kullanın:

  • cPanel veya DirectAdmin erişiminiz var — phpMyAdmin’i kullanın (Yöntem 1). En güvenli yöntemdir ve dosya değişikliği gerektirmez.
  • FTP/SFTP’niz var ancak veritabanı paneliniz yokfunctions.php yöntemini kullanın (Yöntem 2), ancak giriş yaptıktan sonra beş dakika içinde kodu kaldırmak için bir takvim hatırlatıcısı ayarlayın.
  • VPS veya özel sunucuya SSH erişiminiz var — WP-CLI’yi kullanın (Yöntem 3). En temiz yöntemdir, artık kod bırakmaz ve otomasyon için komut dosyasını destekler.
  • FTP’niz var ancak aktif temanın functions.php dosyası yok (blok temalar, FSE temaları) — Acil Durum Betiğini kullanın (Yöntem 4) ve tarayıcı sekmesini kapatmadan önce silin.
  • Yukarıdakilerin hiçbiri mevcut değil — barındırma sağlayıcınızın destek ekibiyle iletişime geçin. Veritabanı şifresini altyapı düzeyinde sıfırlayabilirler.

SSS

S: phpMyAdmin aracılığıyla şifreyi sıfırlamak aktif oturumların çıkış yapmasına neden olur mu?

Hayır. Veritabanındaki user_pass değerini değiştirmek, mevcut WordPress kimlik doğrulama çerezlerini geçersiz kılmaz. Tüm oturumları zorla sonlandırmak için wp-config.php içindeki gizli anahtarları da güncellemeniz veya wp user session destroy --all kullanmanız gerekir.

S: wp_users tablom boş veya eksik. Ne oldu?

Bu genellikle başarısız bir veritabanı geçişini, bozuk bir içe aktarmayı veya wp-config.php içinde yanlış yapılandırılmış $table_prefix değerini gösterir. Öneki phpMyAdmin’deki gerçek tablo adlarıyla eşleştiğini doğrulayın. Tablo gerçekten eksikse, bir veritabanı yedeğinden geri yükleyin.

S: WordPress artık bcrypt kullandığına göre phpMyAdmin’de MD5 kullanabilir miyim?

Evet. WordPress’in kimlik doğrulama katmanı, girişte MD5 ile karmalanmış şifreleri algılar ve geriye dönük uyumluluk için kabul eder, ardından şifreyi mevcut algoritmayı (phpass/bcrypt) kullanarak hemen yeniden karmalar. MD5 karması yalnızca bir sonraki başarılı girişe kadar geçici olarak depolanır.

S: wp user update WP-CLI komutu bir izin hatası döndürüyor. Nasıl düzeltebilirim?

Bu genellikle WP-CLI’nin WordPress dosyalarına sahip olan kullanıcıdan farklı bir sistem kullanıcısı olarak çalıştığı anlamına gelir. Ya sudo -u www-data wp user update ... ile doğru kullanıcıya geçin ya da root olarak çalışıyorsanız --allow-root bayrağını ekleyin.

S: Acil durum betiğini birkaç saatliğine sunucuda bırakmak güvenli midir?

Hayır. Acil durum betiğinin sıfır kimlik doğrulama katmanı vardır — URL’yi keşfeden veya tahmin eden herhangi bir ziyaretçi, yönetici şifrenizi sıfırlamak ve sitenizin tam kontrolünü ele geçirmek için kullanabilir. Kullandıktan hemen sonra silin — bunu, açığa çıkmış bir özel anahtar ile aynı aciliyetle ele alın.

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın