Yazılarımı hazırlarken Drupal'in yeni bir güncellemesinin çıktığını farkettim. Yeri gelmişken bu işlemin nasıl yapılacağını da beraberce inceleyelim. Drupal güncellemesi gerekli önlemler alındığı ve dikkatli olunduğu sürece çok kolay bir işlemdir. Temel olarak yapılması gereken yeni dosyaları kopyalayıp database güncellemesi yapmak. Ancak çıkabilecek sorunların önüne geçebilmek için tedbirli olmakta büyük fayda var. İsterseniz konuya en başından başlayalım.
Biraz önce site ayarlarını yaparken şöyle bir uyarı ile karşılaştım.
Bu uyarı ekranı normalde Drupal kurulumunda bir sorun olduğunda görüntülenir. Drupal 6.5 güncellemesi bir güvenlik güncellemesi olduğu için sitemizin saldırılara karşı açıkları olmasını engellemek için güncellemeyi yapmamız gerekiyor. Bu nedenle uyarı kırmızı renkli. "durum raporu" linkine tıkladığımızda Drupal kurulumunun durum raporunu görüntüleyebileceğimiz sayfaya geliyoruz.
Beklediğimiz gibi Drupal Çekirdek Güncellemesi uyarısı var. Yine bu sayfada zaman zaman Dönemsel Bakım Görevleri maddesiyle ilgili de uyarılar alacağız. Bunlar sitenin sağlıklı olarak işletilebilmesi için periyodik olarak çalıştırılması gereken görevlerdir. Normalde sunucu ayarları yapılarak bu görevlerin otomatik olarak arkaplanda çalıştırılması mümkündür ama biz henüz o ayarları yapmadığımız için bu uyarı geldiğinde "Dönemsel görevleri kendiniz çalıştırabilirsiniz." bağlantısına tıklayarak işlemi tamamlayabiliriz. Yine kurulu eklentilerde veya temalarda bir güncelleme olduğunda bu sayfada uyarı gelecek ve biz eklentilerimizin yeni sürümlerinin çıktığından bu sayede haberdar olacağız. Şimdi "mevcut güncellemeler" bağlantısına tıklayarak ilgili sayfaya geçelim.
Bu sayfada yapmamız gereken güncellemeler ile ilgili detaylı bilgileri görebiliyoruz. İlgili uyarı bölümündeki "indir" bağlantısına tıklayarak Drupal Çekirdek paketini indirelim. Artık güncellemeye başlayabiliriz. Öncelikli olarak sitemizi güncellemeye hazır hale getirelim. Her çekirdek güncellemesi öncesinde Drupal dizininin ve veritabanının yedeğini almamız gerekmektedir. Yedeklerimizi aldıktan sonra aşağıdaki adımları uygulamaya geçelim. Veri kaybu olmadan güvenli bir güncelleme yapabilmeniz için bu adımları atlamadan teker teker uygulamanızda büyük fayda var. 1. Siteye admin kullanıcısı ile yani kurulum aşamasında ilk tanımladığımız kullanıcı ile giriş yapıyoruz. 2. İlk olarak sitemizi çevrimdışı moda geçirmemiz gerekiyor. Güncelleme sırasında sitede o an aktif olan kullanıcıların veritabanı güncelleme esnasında veritabanına erişememeleri gerekiyor. Bunu Site Ayarları > Site Bakımı sayfasından siteyi Kapalı konuma getirerek yapabiliriz. 3. Aktif temayı Garland temasına çeviriyoruz. 4. Önceden kullandığımız eklentilerin yeni yükleyeceğimiz versiyon ile uyumlu olup olmadığını kontrol etmekte fayda var. http://drupal.org/update/modules adresini kontrol ederek geçiş yaptığımız versiyon için eklenti güncellemsi gerekip gerekmediğini öğrenebiliriz. Biz her ihtimale karşı yüklediğimiz tüm modülleri pasif hale getiriyoruz ki güncellemeden sonra bir uyumsuzluk olması durumunda siteye girişimizde bir sorun olmasın. Eğer eklenti güncellemesi de yapmamız gerekiyorsa eklentileri mutlaka pasif hale getirmemiz gerekiyor. 5. Drupal kurulum dizinindeki Sites dizininin yedeğini alıyoruz. Güncelleme tamamlandıktan sonra Sites klasörünü eski yerine kopyalayacağız. Yeri geldikçe yüklediğimiz temaların ve modüllerin ./sites/all dizini altına kurulması gerektiğini tekrar tekrar söylemiştim. Eğer eklentileri veya temaları Drupal kurulum dizini altındaki modules ve themes dizinlerine kurduysanız bunları ayıklamanız gerekecek. Aynı şekild files dizininin de yedeğini alıyoruz. Bu dizinde de Drupal üzerinden yüklediğimiz dosyalar tutuluyor. 6. .htaccess ve robots.txt dosyalarını da mutlaka yedekliyoruz. 7. Drupal kurulum dizinindeki Drupal ile ilgili tüm dosyaları siliyoruz. Eğer silmez de yeni dosyaları eskilerinin üzerine açarsak güncellemeden sonra artık kullanımda olmayan dosyalar sıkıntı yaratabilir. 8. Yeni paketi yükleyip açıyoruz. 9. sites ve files dizinlerini eski yerlerine kopyalıyoruz. Ayrıca .htaccess ve robots.txt dosyalarını da kopyalıyoruz. 10. Siteye girer ve kontrol paneline geçersek hemen kurulum dizinindeki update.php dosyasını çalıştırmamız gerektiği ile ilgili bir uyarı alacağız. Dahada güvenlisi hiç siteye girmeden direk olarak update.php dosyasını çalıştırmak. Örneğin ben kendi sitem için "drupalturk.net/update.php" dosyasını çağırdım. 11. Eğer önceden pasif hale getirdiysek eklentileri tekrar aktifleştiriyoruz. Eğer eklentilerde de güncelleme yaptıysak update.php dosyasını tekrar çalıştırıyoruz. 12. Temayı eski hale getiriyoruz. Eğer temada güncellemeyle ilgili bir sorun olursa ve baştan kontrol etmediysek tema güncellemesi gerekip gerekmediğini http://drupal.org/update/theme adresinden öğrenebilirsiniz. 13. Site Ayarları > Site Bakımı sayfasından sitemizi tekrar çevrimiçi duruma getiriyoruz. Sorun çıkabilecek her adımı düşünerek elimden geldiğince tedbirli bir güncelleme senaryosu gerçekleştirdim. Nasıl olsa bişey olmaz diye düşünerek bazı adımları atlamamanızı tavsiye ederim çünkü burada kazanacağınız birkaç dakikanın maliyeti sorun çözmekle geçireceğiniz birkaç saat olabilir. İlk başta biraz karışık gelebilir ama zamanla sisteme alıştıkça güncelleme yapmak en fazla 15 dakikanızı alacaktır.