12 Ağustos 2009

6 Adımda wp_ Tablo Önekini Değiştiriyoruz

WordPress Yorum Ekle

WordPress kurulumunda sizden oluşturacağı tablolar için Tablo öneki ister. İlk defa WP kuranlar genellikle burayı, varsayılan değer olan, wp_ olarak bırakırlar. Ama WP'yi tanıdıkça bu duruman güvenlik açıklarına neden olabileceğini öğrenir ve değiştirmek isterler. Bunun için her ne kadar eklentiler bulunsa da (ki benim bulduklarım çok eskiydi) en sağlamı, elle yapmaktır. Bu yazımda bu işlemi 6 adımda gerçekleştireceğiz.

1. Yedek Alıyoruz

Bütün önemli değişiklikler öncesinde yaptığımız gibi sitemizin tam bir yedeğini alıyoruz. Çünkü yapacağımız işlemlerin geri dönüşü olmayacak, yanlış bir işlem yaparsanız siteniz ulaşılmaz olabilir. Yedek alma işlemini sitenizin yönetim panelinden (cpanel, plesk, directadmin...) kolaylıkla yapabilir, olası kötü durumlarda yeniden yükleyebilirsiniz.

2. wp-config.php Dosyasını Düzenliyoruz

Sitemizi kurarken veritabanı bilgilerini ve oluşturulacak tablo önekinin ne olacağını wp-config.php içerisinde tanımlarız. Bu bilgileri ya kendimiz elle wp-config.php dosyasını oluşturarak ya da otomatik kurulum sırasında WordPress'e girdiğimiz bilgilerle WP'ye yaptırırız.
Bu dosyayı Notepad++ gibi bir metin editörüyle açın. $table_prefix = 'wp_'; satırını bulup buradaki wp_ ifadesi yerine tablolar için düşündüğünüz öneki yazın. Ben anlatımımda yak258gov_ önekini kullanacağım, bu nedenle buraya bunu yazdım.

3. Veritabanından Tablo Adlarını Değiştiriyoruz

PhpMyAdmin'i ya da sitenizde veritabanlarını nasıl yönetiyorsanız, o yönetim betiğini açın. PhpMyAdmin'de yukarıdaki menüden SQL sayfasına geçin ve aşağıdaki SQL cümlelerinin tamamını kopyalayıp, sayfadaki metin alanı içine yapıştırıp, Git diyerek sorguları işletin. Böylece WP'nin kullandığı 10 tane tablonun tamamının önekini tek seferde değiştirmiş oldunuz. Eğer wp_ önekine sahip başka tablolar varsa (bazı eklentiler kendi tablolarını oluştururlar) bunların da aşağıdaki sorgulara benzer şekilde sorgular yaratarak isimlerini değiştirin.

  1. RENAME TABLE wp_comments TO yak258gov_comments;
  2. RENAME TABLE wp_links TO yak258gov_links;
  3. RENAME TABLE wp_options TO yak258gov_options;
  4. RENAME TABLE wp_postmeta TO yak258gov_postmeta;
  5. RENAME TABLE wp_posts TO yak258gov_posts;
  6. RENAME TABLE wp_terms TO yak258gov_terms;
  7. RENAME TABLE wp_term_relationships TO yak258gov_term_relationships;
  8. RENAME TABLE wp_term_taxonomy TO yak258gov_term_taxonomy;
  9. RENAME TABLE wp_usermeta TO yak258gov_usermeta;
  10. RENAME TABLE wp_users TO yak258gov_users;

Eğer topluca değil de tek tek isimleri değiştirmek isterseniz, ilgili tablonun içerisine girip (sol taraftan tablo adına tıklayarak) İşlemler sayfasından isim değişikliği yapabilirsiniz.

4. Seçenekler Tablosunu Düzenliyoruz

WordPress tablo öneklerini kullanarak _options isimli tablo içerisinde bazı kayıtlar oluşturur. Bunları değiştirmemiz gerekiyor. Yeni adıyla yak258gov_options tablosunu açıp, Göz at diyelim. Böylece tablo içerisindeki kayıtlar karşımıza gelecek. Tablonun option_name sütununda wp_user_roles yazan kayıtı bulun. Benim tablomda bu kaydın ID değeri 94 idi, muhtemelen sizde de öyledir. Kaydı düzenle deyip, wp_user_roles değerini yak258gov_user_roles olarak değiştirin.

5. user_meta Tablosunu Düzenliyoruz

Yeni adıyla yak258gov_usermeta tablosunu açın. Bu tabloda kullanıcıların yetkileri ve kullanıcılara ait bilgiler kayıtlıdır. Yine Göz at diyerek içerisindeki bilgileri listeleyin. Tablo içerisinde metakey sütununda wp_capabilities, wp_user_level, wp_settings, wp_usersettingstime, wp_autosave_draft_ids adlarını bulun ve bunları yak258gov_... olarak değiştirin. wp_capabilites ifadesi diğer satırlarda ve sayfalardaki kayıtlarda da geçebilir. Bunları da bulup, değiştirin. Sanırım her üye için bu tabloya böyle bir kayıt ekleniyor. SQL'den anlıyorsanız, bu işlemi sizin yerinize yapacak bir SQL cümlesi yazarak işinizi kısa yoldan halledebilirsiniz. Örneğin aşağıdaki bir SQL cümlesi kullanabilirsiniz.

  1. UPDATE yak258gov_usermeta SET meta_key = 'yak258gov_capabilities' WHERE meta_key = 'wp_capabilities';

Eğer diğer alan adlarından da (yönetici kullanıcı sayısı fazlaysa olabilir) birden fazla varsa onları da benzer bir SQL cümlesiyle ya da tek tek bulup, değiştirmelisiniz. Aksi halde bu kullanıcılar giriş yapamaz, yapsalar da yetkileri olmaz.

6. Sitemizi Test Ediyoruz

Eğer bütün işlemleri başarıyla gerçekleştirdiyseniz sitenizin ana sayfasını görüntüleyin, yönetim paneline giriş yapın. Sitenin ayarlarıyla oynayıp, yeni bir yazı ekleyin, var olanlardan birkaçında küçük değişiklikler yapın. Yani sitenizi test edin. Bu arada değişiklikleri yaptığınızda bütün kullanıcılar çıkış yapmış olacaklar, dolayısıyla da siz ve üyeleriniz yeniden giriş yapmalısınız.
Eğer hata yoksa -ki kendi bilgisayarımda yaptığım denemelerde hatayla karşılaşmadım- ne ala, hata varsa ya bir yerlerde eksik bir işlem yaptınız, örneğin bir harfi yazmayı unuttunuz, WP'nin dışında fazla olan tablolarınızın öneklerini değiştirmediniz, ya da yöntem sizde işe yaramadı. Bu durumda hemen yedeklerinizi yeniden yükleyip, baştan itibaren bütün adımları dikkatli bir şekilde gerçekleştirin.


Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=991.

Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.


“6 Adımda wp_ Tablo Önekini Değiştiriyoruz” yazısı için 4 Yorum

Bu yazıya yapılan yorumları dilerseniz, ( RSS 2.0 ) beslemesini kullanarak takibe alabilirsiniz.

  1. gevv dedi ki:

    Teşekkürler hocam. Biraz görüm korktu 🙂 malum sql bu zaten işi bilmiyorum biraz araştırdım bir eklenti buldum lokalde denedim sorunsuz çalıştı belki işinize yarar http://blogsecurity.net/wordpress/tool-130707

  2. gevv dedi ki:

    Unutmuşum usermeta içinde wp_usersettings ve wp_usersettingstime değiştiremedi bunları manuel değiştirmek gerekecek

  3. Yakup Gövler dedi ki:

    O eklentiyi biliyorum ama en son 2007 yılında güncellenmiş olması da beni korkuttu. 🙂
    Eğer eklentiyi kullanacaksan buradaki yoruma dikkat et. Sanırım birden fazla yazar varsa, eklenti problem çıkarıyor. Eklentinin kodlarını incelemiştim, ama öylesine karışıktı ki neyi, ne yapıyor anlayamadım. Ben de elle yapalım dedim.

  4. DErman dedi ki:

    Hocam ben birşey daha öğrenmek istiyorum bu konuların yanında tarih var net şekilde yazıyor sizde ama bende örnek : 24 Mar <<< yazıyor sizde 24 Mart 2oo9 bunu nasıl yaparım ayarlarını nerden değişiyorum yardım edin lütfen hocam