Skip to Content
onur serkan kullanıcısının resmi
onur serkan, Cuma, 12/12/2008 - 16:25 tarihinde.

Bu sayfada Drupal 5.x sitelerimizi 6.x'e güncellerken takip etmemiz gereken yöntem ve dikkat edilmesi gereken hususlar yer almaktadır. Anlatım gerçek bir güncelleme sırasında alınan notlardan derlenmiştir.

Önsöz

Anlatıma başlamadan önce Drupal 5'ten 6'ya geçiş sürecinin söz konusu sitenin büyüklüğüne ve güncellemeyi yapan kişinin deneyimine göre değişen bir zaman alacağını unutmayın. Duruma göre 5-10 saatinizi bu işe ayırmanız gerekebilir. Bu yüzden başlamadan önce tüm bu işlemler için yeterli zamanınız olduğundan emin olun. Sonuçta güncelleme işleminin yarım, sitemizin de uzun bir süre kapalı kalmasını istemeyiz. Ayrıca her zaman ihtiyatlı davranmakta fayda vardır; bu yüzden sitelerinizi yedeklerini almayı ihmal etmeyin. Hatta yayında olan sitenizi güncellemeden önce bir kopyası alıp localhost'ta bu işlemleri gerçekleştirin. Böylece normalde başta hesapta olmayan ama sitenizi 6.x'e güncelledikten sonra ortaya çıkabilecek muhtemel sorunları da görme fırsatınız olur.

Not: Güncelleme işlemlerine başlamadan önce, Drupal 6 dağıtımıyla birlikte gelen UPGRADE.txt dosyasını da gözden geçirmeniz tavsiye edilir.

Drupal 6'ya Geçiş Aşamaları

  1. Ön Hazırlık
  2. Mevcut Sitenin Yedeğini Almak
  3. Ön Güncelleme
  4. 6.x’e Geçiş

#1. Ön Hazırlık

  1. Sunucu konfigürasyonunun 6.x için burada verilen minimum gereksinimleri karşıladığından emin olmalıyız.
  2. Sitede kullanılan eklentilerin 6.x uyumlu sürümleri olup olmadığını kontrol edelim.

    Eğer tüm eklentiler için 6.x sürümleri varsa sorun yok, fakat bazı eklentiler için bu sürümler bulunmuyorsa burada siteyi 6.x’e yükseltme kararını gözden geçirmeliyiz.

    Eğer 6.x sürümü olmayan eklentiler

    • sitenin çalışması açısından kritik değilse,
    • önemli olmalarına rağmen site bir süre bu eklentiler olmadan idare edebilecekse ve bu eklentilerin 6.x sürümlerinin geliştirilmesi aktif olarak devam ediyorsa,
    • 5.x versiyonunda geçici bir çözüm olarak kullanılmış ve 6.x’te bu eklentiler olmadan veya başka yollarla bu eksiklikler giderilebilecekse

    siteyi 6.x’e yükseltme kararında ısrar edebiliriz.

    Bunların haricindeki durumlarda mevcut 5.x sitemizi 6.x’e yükseltmek ciddi sıkıntılar yaratabilir; dolayısıyla bu işlemi bir süre daha ertelemek iyi olacaktır.

    Bazı eklentilerin 5.x’den 6.x’e güncellenmesi bazı özel işlemler gerektirebilir (ör: CCK). Bu tür eklentilerin proje sayfalarında güncelleme ile ilgili uyarı ve bilgiler verilmektedir. Eklentilerin 6.x uyumluluklarını kontrol ederken bu uyarılara dikkat etmeli ve ilgili eklentileri bir kenara not etmeliyiz. Bu uyarıları unutur veya dikkate almazsak güncelleme sırasında ve sonrasında sorunlar yaşayacağımız kesin.

  3. Site temamızın 6.x uyumunu kontrol edelim.

    Hazır bir tema kullanıyorsak temanın 6.x sürümü olup olmadığını kontrol etmeliyiz. Eğer temamızın 6.x sürümü yoksa, 5.x ile 6.x temaları arasındaki farkların anlatıldığı bu dokümandan yararlanarak bunu kendimiz yapmayı deneyebilir veya sitemize uygun 6.x sürümü olan başka bir tema tercih edebiliriz.

    Not: Tema, güncelleme tamamlandıktan sonra önem kazanacak bir konu. Tüm güncelleme işlemleri sırasında Drupal’in varsayılan teması olan Garland kullanılacak. Bu yüzden siteyi yükseltmek açısından mevcut temanızın bir önemi yok.

  4. Kullandığımız eklentilerin en güncel 5.x ve 6.x versiyonlarını koymak için iki ayrı klasör oluşturalım ve drupal.org’dan bu versiyonları indirip 5.x ve 6.x klasörlerine kaydedelim.

#2. Mevcut Sitenin Yedeğini Almak

Yedek alma işlemi hem veritabanı yedeğini hem de dosya yedeğini almayı kapsıyor. Veritabanı yedeği site yönetim paneli (cPanel, Plesk, vb.), phpMyAdmin veya Backup and Migrate eklentisi üzerinden alınabilir. Dosya yedeğini alırken de Drupal sitemizin tüm dosya ve klasörlerini almak en güvenli yol olacaktır. Eğer komple bir yedek almayacaksanız, sonradan kurduğunuz eklenti ve temaların yanı sıra site ayarlarının kayıtlı olduğu settings.php dosyasının da yer aldığı sites ve site üzerinden yüklenen dosyalarınızın bulunduğu files dizinleri ile eğer değişiklik yapmış iseniz robots.txt ve .htaccess dosyalarınızı mutlaka yedekleyin.

#3. Ön Güncelleme

  1. Siteyi bakım moduna alalım (admin/settings/site-maintenance sayfasından). Böylece güncelleme işlemleri, siteyi gezmeye ve işlem yapmaya çalışan kullanıcılar tarafından kesintiye uğratılmayacaktır.
  2. Site teması olarak Garland’ı veya başka bir çekirdek temayı seçelim.
  3. Tüm eklentileri en son yayınlanmış 5.x versiyonlarına güncelleyelim (ör: Sitede CCK eklentisinin 5.x-1.7 versiyonu kullanılıyorsa ve 5.x için drupal.org’da yayınlanan en güncel CCK versiyonu 5.x-1.10 ise, CCK eklentisini 6.x’e yükseltmeden önce 5.x-1.10 versiyonuna güncellemeliyiz).
    Not: Bütün eklentileri tek bir defada güncellemek yerine birkaç defada yapmak oluşabilecek sorunları tespit edebilmek açısından faydalı olacaktır. Ayrıca her eklenti güncellemesinin ardından update.php’yi çalıştırmayı unutmayın.
  4. Siteyi mevcut ana sürümün en yeni versiyonuna güncelleyelim (ör: Sitede Drupal 5.6 kullanıyorsa ve şuanda 5.x serisinde en güncel versiyonu 5.12 ise siteyi 6.x’e yükseltmeden önce 5.12’ye güncellemeliyiz). Bu işlem için Ara Sürüm Güncelleme Rehberi'nden yaralanabilirsiniz.
  5. Güncel 5.x sitemizin tekrardan bir yedeğini alalım (bkz. 2. Mevcut Sitenin Yedeğini Almak).

#4. 6.x’e Geçiş

  1. Çekirdek harici tüm eklentileri devre dışı bırakalım. Ayrıca 6.x ile birlikte artık kullanmayacağımız eklentiler varsa ve bu eklentiler Kaldır bölümünde listeleniyorsa bunları işaretleyerek sistemde bulunan kayıtlarını tamamen silelim.
  2. Site dizininde bulunan tüm Drupal dosya ve klasörlerini silelim veya sunucu üzerinde başka bir dizine taşıyalım.
  3. Drupal 6 dosyalarını site ana dizinine kopyalayalım.
  4. 3. adımın sonunda yedeğini aldığımız files dizini, sites/default dizininde yer alan settings.php dosyasını ve eğer üzerlerinde değişiklik yapıldıysa robots.txt ve .htaccess dosyalarını yeni kurulumun üzerine taşıyalım.
  5. 5.x’te Block Cache eklentisini kullandıysak phpMyAdmin ile veritabanımızda yer alan cache_block tablosunu silelim.
  6. Update.php’yi çalıştıralım (sitemiz.com/update.php). Bu işlemin sonunda yapılan güncellemelerle ilgili bir özet sunulacak. Eğer işlemler sırasında herhangi bir sorun yaşanmadıysa sitemizin altyapısı artık Drupal 6’ya yükseltilmiş olacak.
  7. Eklentilerimizin 6.x uyumlu versiyonlarını sites/all/modules dizinine taşıyarak etkinleştirip güncelleyelim. Bu işlemi yaparken tüm eklentileri bir defada yapmak yerine grup grup ve hatta tek tek yapmak çok daha sağlıklı olacaktır. Bazı eklentilerin güncellemelerinin diğerlerinden önce yapılması gerekebilir. Örneğin CCK paketinde yer alan Content eklentisi diğer tüm CCK eklentilerinden önce etkinleştirilip güncellenmelidir (update.php ile). Bu yüzden CCK’yı Imagefield, Filefield, Embedded Media Field vb. CCK grubu eklentilerinden önce tek başına taşıyıp kurmalı, etkinleştirmeli ve güncellemeliyiz. Eğer CCK’yı güncellemeden önce diğer eklentileri de sites/all/modules dizinine taşırsak, bu eklentiler etkin olmasalar bile update.php çalıştırıldığında güncellenmeye dahil edilirler ki bu durum CCK güncellemesinde sorun yaratacaktır. Bu yüzden mümkün olduğunca toplu taşıma ve güncellemelerden kaçının.
    Not: Şuan itibariyle bazı CCK alanları 6.x güncellemesi sonucunda inaktif durumda kalıyorlar. Bunları veritabanında yer alan content_node_field_instance tablosunda ilgili kaydın widget_active değerini 1 yaparak etkinleştirmek mümkün. Bu işlemi yaptıktan sonra site önbelleğini temizleyip içerik türü alan düzenleme sayfasına gidip bu alana ait ayar sayfasından ayarları güncelleyip kaydetmek gerekiyor.
    Not2: Ben güncellemeyi yaparken Views ile daha önceden oluşturulan görünümleri 6.x’te kullanamadım, bu yüzden hepsini tekrardan oluşturdum. Bildiğim kadarıyla şuan Views için 5.x’ten 6.x’te aktarım yok.
  8. Yeni temayı yükleyip etkinleştirelim ve blok yerleşimlerini gözden geçirelim.
  9. Performans ve önbellek ayarlarını gözden geçirelim.
  10. Herşeyin hazır olduğuna emin olduktan sonra siteyi tekrardan yayına alalım.

Sonsöz

Eğer buraya kadar gelebildiyseniz sitenizi Drupal 6'ya yükseltmişsiniz demektir, tebrikler. Her ne kadar önümüzdeki birkaç ay içinde Drupal 7 yayınlanacak olsa da, Drupal 7'nin yaygın olarak kullanılmaya başlaması 2009 sonbaharını bulur. Bu yüzden yeni Drupal 6 sitenizi daha uzun bir süre kullanabileceksiniz :)