Dün gece sitemi wordpress 2.3 sürümüne yükselttim ve işlem esnasında bazı notlar tuttum. WordPress 2.3 önceki sürümlerden bağımsız ve yenilikçi bir kategori yapısı kullanmasından ötürü birçok günlükçü bu yeni sürüme geçmeyi düşünmüyor. Bu nedenle notlarımı paylaşmaya karar verdim.
WordPress 2.3’e güncellemeden önce yapılması gerekenler
WordPress 2.3 sürümüne geçmeden önce birkaç kontrol işlemini gerçekleştirmeniz gerekiyor.
1- Eklenti kontrolü
Özellikle yazı ve bağlantı kategorileri tablolarını kullanan eklentiler bu yeni sürüm üzerinde çalışmayacaktır. Çünkü bu tablolar (post2cat, link2cat, categories) birleştirilerek tek bir tabloda toplandı. Bu nedenle yerel sunucunuza wordpress 2.3 kurup, kullanmakta olduğunuz tüm eklentileri bu alanda test etmeniz gerekiyor.
Eklenti kontrolü esnasında bunların hangilerine gerçekten ihtiyaç duyduğunuzu da tekrardan gözden geçirebilirsiniz. Gerekmeyen eklentileri kaldırmak, wordpress performansı için çok önemli.
2- Tema kontrolü
Yeni wordpress sürümleri ile gelen bir diğer güzel özellik ise her bir temanın kendisine ait bir fonksiyon (functions.php) dosyasının olabilmesi. Böylece temanız da, aynı eklentiler gibi wordpress üzerinde işlem gerçekleştirebiliyor. Bu nedenle temanız içerisinde tanımlı olan fonksiyonlar wp 2.3 sürümünde çalışmayabilir. Bunu yine yerel sunucunuzda uygulayacağınız test ile görebilirsiniz.
Eğer temanız wp 2.3 üstünde çalışmazsa, size 4 açık kapı kalıyor;
- Temayı kodlayan kişinin sitesinden ilgili temanın güncellemelerini kontrol etmelisiniz.
- Temanızın kaynağında değişiklik yaparak problemi gidermelisiniz
- Eğer PHP bilginiz yok ise, PHP ve WordPress konusunda tecrübeli birinden yardım isteyerek temanızın uyum problemini çözmelisiniz.
- Elinizden birşey gelmiyor, yardımcı olacak birini bulamıyor ya da temayı kodlayan kişi 2.3 ile uyumlu bir sürüm çıkarmaya vakit bulamıyorsa, temayı değiştirmekten başka bir çare kalmıyor.
3- Herşey tamamsa, sitenizi ziyaretçilere kapatın
Eğer 1 ve 2. adımda bir problem yaşamayıp sitenizi güncellemeye karar verdiyseniz, ziyaretçilerinizin siteye erişimini engellemek en güzelidir. Örneğin güncelleme işlemi boyunca onlara Güncelleniyoruz v.b. tarzında bir karşılama mesajı sunabilirsiniz.
4- Veritabanızın yedeğini alın
Güncelleme kritik bir iştir ve şakaya gelmez 🙂 Ne olur ne olmaz, sitenize ait tüm veritabanının bir yedeğini alın.
Güncelleme esnasında yapılması gerekenler
Tüm ön testlerimizi bitirdik ve en azından karşılaşacağımız birçok problemi yerel sunucumuz üzerinde çözdük. Siteyi de ziyaretlere kapattık ve güncellemeye geçeceğiz. İşte adımlarımız 🙂
1- Eski dosyaları silin, WP 2.3 dosyalarını yükleyin
Sitenizin FTP dizinine bağlanın ve buradaki tüm dosyaları silin. Ancak öncesinde eklenti, tema v.b. gibi dosyalarınızın bir yedeğini alın ya da bunları silmeyin. Ve unutmadan, eğer wordpress üzerinden resim yüklüyorsanız, resimlerinizi yüklediğiniz dizini de silmeyin. Neyse genel olarak anladığınızı umuyorum 🙂 Eski wordpress sürümüne ait ve içerisinde bize ait dosyaların olmadığı tüm klasörleri silin gitsin.
Daha sonra wordpress 2.3 sürümünün paketini indirin ve sıkıştırılmış klasör içerisinden çıkan dosya ve klasörleri sitenizin FTP dizinine yükleyin.
2- wp-config.php dosyanız ve Türkçe dil dosyası
Yükseltme işlemi yaptığımız için yeni bir veritabanı yükleme ihtiyacı duymuyoruz ve bu nedenle önceki sürümdeki ayarlarınız ile devam edeceksiniz. Eğer hali hazırda bir wp-config.php dosyası varsa onu kullanacağız. Yoksa wp-config-sample.php dosyasını wp-config.php olarak yeniden adlandıracağız. Sonrasında ise bu dosya içerisindeki mevcut ayarları tekrar tanımlamamız gerekiyor.
Günlüğümüzü Türkçe arayüz ile kullanmak istiyorsak WordPress-Tr ekibi tarafından hazırlanan Türkçe dil dosyasını buradan indirmemiz gerekiyor. İndirmiş olduğumuz bu dosyayı da sitemize yüklüyor ve wp-config.php içerisine gerekli tanımlamaları yapıyoruz. (bkz)
3- Veritabanı yapısının güncellenmesi
sitenizinadi/wp-admin/upgrade.php adresini görüntüleyip, tüm adımları sırasıyla gerçekleştirerek mevcut veritabanınızın da yapısını wordpress 2.3 sürümüne yükseltebilirsiniz. Bu işlem sonrasında önceki sürümlerde yer alan yazı ve bağlantı kategorileri tabloları silinerek yeni Taxonomy tabloları oluşturulacaktır.
Bu işlemin ardından phpMyAdmin ile veritabanınıza bağlanarak silmiş olduğunuz eklentilere ait tabloları kaldırabilir ve ardından tüm tabloları onarabilirsiniz. Eğer varsa, tüm ek yükler temizlenecektir.
4- Etiketlerinizin aktarılması
Kullanmış olduğunuz etiket eklentisinde yer alan tüm etiketleri, wordpress 2.3 üzerindeki yeni etiket sistemine aktarabilirsiniz. Bunun için Yönet=>İçe Aktar yolunu izlemeli ve kullanmış olduğunuz eklentiyi seçerek aktarma işlemine geçmelisiniz.
Bu bölüm için fazla birşey yazamayacağım. Aktarma yöneticisinde sadece Simple Tagging 1.6.2 tanımlı olmasına karşın kullanmış olduğum daha eski Simple Tagging sürümünden tüm etiketlerimi başarılı bir şekilde aktarabildim.
Güncelleme sonrasında yapılması gerekenler
Sitemizi güncelledik ancak işimiz bitmedi. İlla gözümüzden kaçan noktalar olabilir. Bu nedenle olabildiğince test etmeli ve problem aramalayız 😉 Hatta güncelleme sonrasında ziyaretçilerinize bu durumu bir yazı ile bildirmeli ve tespit edecekleri hataları bildirmelerini rica da edebilirsiniz. Kendi güncellemem sonrasında şu ana kadar 3 adet farklı hatayı ziyaretçilerin bildirmeleri ile gördüm ve düzelttim;)
Güncelleme sonrasında alınan bazı hatalar ve yorumları
Üstteki adımlara uymadan ya da mevcut eklentilerinizi test etmeden yapılan bir güncelleme sonrasında aşağıdaki hataların benzerlerini görmeniz olası 🙂
[Table 'crnonet.wp_post2cat' doesn't exist] SELECT p2c.category_id AS cat_id, COUNT(p2c.rel_id) AS numposts, UNIX_TIMESTAMP(max(p.post_date_gmt)) + '2' AS last_post_date, UNIX_TIMESTAMP(max(p.post_date_gmt)) AS last_post_date_gmt FROM wp_post2cat p2c INNER JOIN wp_posts p ON p2c.post_id=p.id WHERE (p.post_status='publish' OR p.post_status='static') AND p.post_date_gmt<='2007-09-30 19:06:57' GROUP BY p2c.category_id ORDER BY numposts DESC
[Table 'yeditepe_fsm.wp_categories' doesn't exist] SELECT COUNT(*) FROM wp_categories
WordPress database error: [Table 'cynthiaknouft1.wp_post2cat' doesn't exist] SELECT c.cat_name FROM wp_post2cat p2c INNER JOIN wp_categories c ON p2c.category_id = c.cat_id WHERE p2c.post_id = 436
[Table 'hyper.post2cat' doesn't exist] SELECT SQL_CALC_FOUND_ROWS DISTINCT posts.*, ss21.sayac_toplam, ss21.sayac_bugun, ss21.anlik_en_fazla_kisi, ss21.son_okuma, sticky.sticky_status FROM posts LEFT JOIN post2cat ON (posts.ID = post2cat.post_id) LEFT JOIN catt_visibility ON (post2cat.category_id = catt_visibility.catt_ID) LEFT JOIN sayfa_sayac_21 ss21 ON posts.ID = ss21.post LEFT JOIN sticky ON sticky.sticky_post_id = posts.ID WHERE 1=1 AND post_type = 'post' AND (post_status = 'publish' OR post_status = 'private') AND ((catt_visibility.front='1' AND catt_visibility.cv_user_level<='10') OR post_type='page' OR catt_visibility.catt_ID IS NULL) ORDER BY (sticky.sticky_status = 2 AND sticky.sticky_status IS NOT NULL) DESC, DATE_FORMAT(posts.post_date,'%Y-%m-%d') DESC, (sticky.sticky_status = 1 AND sticky.sticky_status IS NULL) DESC, DATE_FORMAT(posts.post_date,'%T') DESC LIMIT 0, 8
WordPress database error: [Table 'wordpress.wp_post2cat' doesn't exist] SELECT c.cat_name FROM wp_post2cat p2c INNER JOIN wp_categories c ON p2c.category_id = c.cat_id WHERE p2c.post_id = 218
Tüm bu hata kodları Eklenti Kontrolü başlığında anlattığım nedenden ötürüdür. Bu hata kodları,
- Table 'wp_post2cat' doesn't exist
- WordPress 2.3 'de Karşılaşılan hatalar, sorunlar, eklenti uyuşmazlıkları
başlıklarından derlenmiştir.