WordPress’i FTP kullanmadan güncellemek
Standart bir WordPress kurulumunu güncellerken wp-admin/ ve wp-includes/ klasörlerini, ve kurulum kök dizinindeki wp-config.php hariç tüm dosyaları silmeniz gerekecektir. Bunların yanında, eğer varsa, wp-content/cache/ dizinin de silinmesi gerekir. Tüm bu işlemleri FTP istemiciniz ile yapmaya kalktığınızda, tüm dosya ve klasörleri teker teker ele alan istemcinizin bu alt dizinler altında bulunan dosyaları birer birer silmesi dakikalar alacaktır. Sonrasında güncel WordPress dizin ve dosyalarını sildiklerinizin yerine göndermek için de, yine herbir dosya teker teker gönderileceğinden, silmek için ayırdığınız zamandan daha fazlasına ihtiyacınız olacaktır. FTP istemicinizi kullanarak gerkeçleştireceğiniz bir WordPress güncellemesi, sizin ve sunucunuzun internet hızına bağlı olarak, ortalama 10-15 dk arasında zaman gerektirmektedir. Eğer çok sayıda eklenti de kullanıyorsanız, güncelleme öncesinde deaktive ettiğiniz bu eklentileri tekrar (ve teker teker) aktifleştirmeyi de hesaba katarsanız, bu süre kötümser bir tahminle 20 dk’yı bile geçebilir. Güncellemek zorunda olduğunuz birden fazla siteniz olma olasılığına ise hiç değinmiyorum :) Eğer sunucunuz size shell erişimi sağlıyorsa ve yeterli pratiğe sahipseniz aynı işlemleri gerkçekleştirmek en fazla iki dakikanızı alacaktır.
WordPress’i shell aracılığı ile güncellemeye başlamadan önce sunucu sağlayıcınızın size temin ettiği shell kullanıcı adı ve şifreniz ile sunucunuza giriş yapmanız gerekiyor. Bunun için yandaki PuTTY ekran görüntüsünde belirtilen alana sunucunuzun host adresini veya IP adresini girmeniz, sonra da altta gösterilen “Open” tuşuna tıklamanız gerekecektir. Sunucu adresini girdiğiniz kutunun altında sunucunuzun tercih ettiği bağlantı tipini belirtmeyi unutmamalısınız. PuTTY seçtiğiniz bağlantı tipine göre bağlantının kurulacağı port numarasını protokol için ön tanımlı iletişim portu ile otomatik olarak değiştirecektir. Bununla birlikte, eğer sunucunuz güvenlik amacı ile ön tanımlı olandan farklı bir port tercih ediyorsa, bunu el ile girmeniz gerekecektir.
Sonrasında karşınıza çıkan siyah ekranda ise sırası ile kullanıcı adınızı ve şifrenizi girmeniz gerekiyor. Şifrenizi girerken, girdiğiniz karakterler için ekranda yıldız vb bir işaret çıkmayacağı için, hiç birşey yazmıyormuşsunuz izlemine kapılabilirsiniz. Bu shell giriş ekranının genel davranış biçimidir, durumu önemsemeyin ve şifrenizin tüm karakterlerini girdiğinizden emin olduktan sonra “Enter”i tuşlayın, girişin gerçekleştiğini göreceksiniz.
İşe önce WordPress’in güncel versiyonunu indirerek başlıyoruz, fakat WordPress’i kendi bilgisayarımıza değil doğrudan sunucu bilgisayara indireceğiz :) Bunun için hemen her Linux kurulumu ile gelen “wget” indirme aracından yararlanacağız. Önce geçici bir dizin oluşturalım, sonra da bu dizin içerisine geçelim, emin olmak için de “pwd” komutu ile konumumuzu kontrol edelim;
$ mkdir temp
$ cd temp
$ pwd
/home/kullaniciadi/temp
Yeni oluşturduğumuz “temp” dizini içerisinde olduğumuzdan emin olduktan sonra WordPress’i indirmesi için sunucumuza talimat verebiliriz;
wget http://wordpress.org/latest.tar.gz
Sunucu bilgisayarlar internete yüksek hızlar ile bağlandıklarından dolayı, indirme işlemi en çok birkaç saniye sürecektir. Sonrasında latest.tar.gz dosyasının varlığını “ls” komutu ile kontrol edebiliriz. Komutu “ls -al” olarak girdiğinizde aşağıdakine benzer bir ekran ile karşılaşmanız gerekiyor;
$ ls -al
total 528
drwxrwxr-x 2 kullaniciadi pg543492 12288 2007-01-21 01:38 .
drwxr-x--x 21 kullaniciadi pg543492 4096 2007-01-15 10:18 ..
-rw-rw-r-- 1 kullaniciadi pg543492 519033 2007-01-21 01:45 latest.tar.gz
Artık WordPress’in güncel versiyonunun arşiv dosyasını indirdiğimize göre bunu açabiliriz. TAR formatında olan ve GZIP sıkıştırmasına sahip bu dosyayı aşağıdaki komut aracılığı ile bulunduğu dizine açıyoruz;
tar -xzvf latest.tar.gz
Bu işlem sonucunda girilecek bir “ls -al” komutunun şöyle bir ekran ile geri dönüş yapması gerekir;
$ ls -al
total 532
drwxrwxr-x 3 kullaniciadi pg543492 12288 2007-01-21 01:45 .
drwxr-x--x 21 kullaniciadi pg543492 4096 2007-01-15 10:18 ..
-rw-rw-r-- 1 kullaniciadi pg543492 519033 2007-01-21 01:45 latest.tar.gz
drwxr-xr-x 5 kullaniciadi pg543492 4096 2007-01-15 13:41 wordpress
WordPress’in son versiyonunu barındıran “wordpress” dizininin oluştuğunu gördükten sonra bu dizin içerisine geçiyoruz;
$ cd wordpress
ve kendimize güncelleme sırasında kullanacağımız yeni bir arşiv oluşturuyoruz (*);
$ tar -czvf wp.tgz *
Artık güncelleme için kullanacağımız WordPress paketini hazırladığımıza göre güncelleyeceğimiz WordPress kurulumu üzerindeki işlemleri gerçekleştirebiliriz (anlatım sırasında WordPress’in sunucu kök dizini altında bulunan “www” dizini içerisinde kurulu olduğunu varsayacağım). Bunun için sunucumuzdaki “www” dizinine geçiş yapıyoruz;
$ cd /home/kullaniciadi/www
Bu dizinde ilk işimiz, daha sonraki basamaklarda yapacağımız işlemlerden etkilenmemesi için, wp-config.php dosyasının adını (daha doğrusu uzantısını) değiştirmek olmalı. Bunun için aşağdaki komutu kullanıyoruz;
$ mv wp-config.php wp-config.php.yedek
wp-config.php’yi sağlama aldıktan sonra, bu dizin içerisinde silinmesi gereken dizin ve dosyaları aşağıdaki komut aracılığı ile uzaklaştırıyoruz;
$ rm -rf wp-admin/ wp-includes/ wp-content/cache/ *.php
Bu basamaktan sonra geriye sadece wp-content/ dizini, işlem öncesinde adını değiştirdiğimiz wp-config.php.yedek dosyası ile WordPress kök dizinin de bulunan, ve WordPress’in çalışabilmesi için hayati önem taşımadıkları için güncellenmelerinin çok da gerekli olmadığı, readme.html ve license.txt dosyalarının kalmış olması gerekiyor. İsterseniz daha önceki basamaklarda da kullandığımız “ls -al” komutu ile kontrol edebilirsiniz.
Gerekli uzaklaştırma işlemlerinden sonra güncelleme için hazırladığımız WordPress arşivini içinde bulunduğumuz “www” dizinine taşıyabiliriz. Bunun için aşağıdaki komuttan yararlanıyoruz;
$ mv ../temp/wordpress/wp.tgz .
Sonra da arşivin içeriğini çıkartmamız gerekiyor;
tar -xzvf wp.tgz
TAR dosyaları çıkartırken ön tanımlı olarak eski dosyaların üzerine yazacaktır (dolayısı ile wp-content/ dizini içerisindeki eski dosyalar paket içerisindeki versiyonları ile değiştirileceklerdir) (**). Güncel WordPress dosyalarını yerine koyduktan sonra adını değiştirdiğimiz wp-config.php’yi tekrar eski haline getirmemiz gerekiyor;
$ mv wp-config.php.yedek wp-config.php
Herşey yerli yerinde olduğuna göre artık tarayımızın adres satırında upgrade.php’yi çalıştırarak yükseltme işlemini tamamlayabiliriz.
http://www.siteadi.com/wp-admin/upgrade.php
Evet hepsi bu, artık eklentilerinizi aktifleştirmeye başlayabilirsiniz :) Konu ile ilgili bir sonraki yazımda bir sitenin yedeğinin shell aracılığı ile nasıl alınacağına ve shell işlemlerinin nasıl otomatize edilebileceğine değineceğim. Eğer bu yazıyı beğendiyseniz bir sonrakini kaçırmamanızı öneririm ;)
Dipnotlar;
(*) Arşivi açarken hedef dizinde “wordpress” isimli bir dizin oluşmasını istemediğim ve bu yöntem dosyaları teker teker belirleyerek çıkarmak ya da taşımaktan daha kolay geldiği için tercih ettim. Eğer istereseniz bu basamak (veya genel olarak önerdiğim güncelleme metodu için) bir çok değişik alternatif bulabilirsiniz.
(**) Aklınıza gelebilecek; “Madem TAR otomatik olarak eski dosyaların üzerine yazacak, neden güncelleme sırasında değiştirilecek dosyaları silmekle zaman kaybediyoruz?” sorusu için; bazen dosyaların sahipleri ve izinleri dolayısı ile üzerine yazma işlemi sekteye uğrayabiliyor, bu yüzden işimizi garantiye alıyoruz ;)
Sayfalar: 1 2
18 February 2007, 1:08 am
Güzel bir yazı olmuş ellerinize sağlık. Benim için bu büyük bir kriter, Shell(bash) desteği vermeyen bir sunucu ile aram kötü olurdu herhalde. Ayrıca ek olarak dosyaları düzenlemek için
vim dosya.txt
şeklinde Vim ile düzenleyebilirsiniz. Kendisi Linux camiasının en güzel, en nadide uygulamalarından biridir. İşinize yarayabilir. Bir de Linux altından bağlanmak için
ssh isim@alanadı.com
şeklinde konsoldan giriş yapabilirsiniz. Openssh paketini yüklemek şartıyla tabi.
18 February 2007, 1:36 am
Evet, shell erişiminin hayatlarını nasıl kolaylaştırabileceğini farkeden herkes bu olanağı sağlamayan sunuculara soğuk bakmaya başlıyor ister istemez :)
Yazıyı konu ile ilk tanışacakları hedefleyerek yazdığım için olabildiğince sade tutmaya çalıştım, bu yüzden birçok araca değinmedim. vim gerçekten iyi bir düzenleyici olsa da ben bana kullanımı daha kolay gelen nano’yu tercih ediyorum (sunucularda genellikle her ikisine de yer veriliyor). Yine, Linux kullanıcılarının Windows kullanıcılarına kıyasla, SSH’ın ne anlama geldiğinin ve nasıl kullanılacağının daha çok farkında olacaklarını farzederek çok detaya yer vermemiştim, ayrıntı için teşekkür ederim ;)
18 February 2007, 7:00 am
evet gerçektende çok güzel birşey bu shell. ben bugünden sonra hosting alırken mutlaka shell desteğine bakacağım.
20 February 2007, 6:14 pm
Bir de, sunucuda ssh varsa büyük olasılıkla rsync de vardır ki, bu uygulama sayfa yayınlama, dosya yollama işlemlerini bayağı bir hızlandırır.
22 February 2007, 10:42 am
Exxon:
Evet, hatta SVN’de varsa, bu desteği veren yazılımları kurmak ve güncellemek de oldukça hızlanacaktır. Yakın zamanda WordPress Codex’inde, WordPress’in SVN aracılığı ile yüklenmesi ve güncellenmesi üzerine bir makale yayınlandı, burada yayınladığım makaleden faydalanmayı düşünenlerin oraya da bakmalarında yarar var.
23 February 2007, 6:50 pm
Arkadaşlar Merhaba,
Acemiblogcu’ dan daha acemi bir blog kullanıcısı olan ben, birkaç gün önce kendi wordpress tabanlı sitemi açmış bulunuyorum ve içerik olarak bilgilerimi paylaşmak istesemde, konuları kısa şekilde anlatamamak gibi bir özürüm olduğu için bir çok yazıyı yarıda kesiyorum ve yazmayı bırakıyorum. Fakat ilk gönderdiğim postlarım yukarıda bahsi geçen konularla ilgili(benim postlarım daha önce yazılmış:) ve bu tesadüften faydalanarak acemiblogcu’ nun izniyle burada hafif duyuru amaçlı sitenin adresini vermek istiyorum. Yukarıdaki bahsi geçen konuyla ilgili bir kaç ipucu yazmıştım projeler.org adresinde. Yeni başlayanlar için çok işe yaramayacak olsada ilerde eminim saatlerinizi harcayacağınız konular arasında.. Ayrıca anlatım tarzım ve cümleler ile ilgili eleştirilerinizi yorum olarak yazarsanız gelecek yazılarıma(eğer imkan olursa) çok büyük katkıda bulunmuş olursunuz. Bu tür yorumları muhtemelen yayınlamam konu dışı olacağı için fakat hepsi kabulümdür :) Yazılmış konu ile ilgili sorularınız ise cevabıyla beraber yayınlacaktır elbette.
Hayırlı günler…
7 August 2009, 2:36 pm
ssh ile shel araindaki fark ne ?
16 August 2009, 1:04 am
“SSH” ile sunucuya bağlanıp “Shell” üzerinden işlem yapıyorsunuz.
22 January 2013, 5:42 pm
Çok teşekkürler güzel anlatım olmuş.