19
Ağustos
2008

WordPress’i Bakıma Almak

Site BakımdaZiyaretçiler ekranda Fatal error: Cannot redeclare wp_unregister_globals() hede hödö falan filan…. gibi hata mesajları görünce mutsuz olur. WordPress’inizde sürüm güncellerken, kullandığınız tema üzerinde değişiklik yaparken, eklenti geliştirirken ya da yeni bir şey denerken web sitenizi geçici olarak kapatmanız gerekebilir.

Wordpress’inizi bakım moduna alabileceğiniz iki eklenti gördüm. Bunlar Maintenance Mode ve Site Maintenance eklentileri.

Ancak eklentilerle sorun yaşadıysanız, sitenizi kapatmak için bile eklenti kurmak istemiyorsanız ya da eklentilerle ilgili duygusal problemleriniz varsa saf PHP kodu değişikliklerinden oluşan benim yöntemimi kullanabilirsiniz.

Anlatacağım yöntem sadece WordPress için değil, tek bir giriş noktası olan (WordPress’de index.php) tüm betikler için geçerli.

Wordpress’de bir sayfa çağırdığınızda ilk index.php çalışır. Kaynak kodunu aşağıda görüyorsunuz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);
 
/** Loads the WordPress Environment and Template */
require('./wp-blog-header.php');
?>

Bu basit dosyanın tek amacı, bir sonraki dosyayı çağırmak ve temiz bir başlangıç yapmaktır. Ziyaretçilerin önünü, sisteme tek giriş noktası olan bu dosyada kesebiliriz.

Sitemizi bakım moduna alırken dikkat edeceğimiz bazı önemli noktalar var:

  • Bakım modu tüm siteyi kapsamalı. Örneğin insanlar http://hödö.com/ adresine girince “Sitemiz Bakımdadır” yazısını görürken http://hödö.com/bir-blog-girdisi/ adresine girince yamulmuş bir site görmemeliler.
  • Bakım modu sayfası sistem yüklenmeden (yani WordPress’e dair hiçbir şey yüklenmeden) gelmeli. Böylece veritabanı bağlantısı çökse de wp-includes klasörünü silseniz de bakım modu yazısına bir şey olmayacak, ziyaretçiler arkada ne olup bittiğini bilemeyecekler. (denemedim ama eklenti halinde dağıtılanların bu adımı sağlayacağını hiç sanmıyorum.)
  • Bakım modu sayfası tarayıcı önbelleğinden etkilenmemeli.
    Bakım modu sayfası koymanın en dandik yönetimi şudur: index.php’nin yanına bir tane index.html atarsınız ve içine bakımda yazarsınız. Ama önbelleğinde sitenin açılış sayfasının index.php olduğunu tutan tarayıcıların index.html’den haberi olmayacağı için siz sadece bazı ziyaretçilere bakımda olduğunuzu duyurabilirsiniz.
  • Bakım modu yazısı devredeyken sisteme erişebilmelisiniz. Bir üstte anlatılan yöntem şöyle geliştirilebilir. index.php’yi index2.php olarak adlandırır ve index.php’nize bakımda yazısını koyarsınız. Böylece insanlar bakımda yazısını görür. Ama sistem sizin için de doğru işlemeyebilir. Hoş değildir.
  • Bakım modu botlara 200 OK headeri yerine 503 Service Temporarily Unavailable headeri göndermelidir. Aksi halde botlar bakımda olduğunuzu anlamayıp içeriğinizin değiştiğini sanabilir, hatalı davranabilir ve başınızı ağrıtabilir.

Yukarıdaki maddelerde anlatılanlara dikkat edilerek oluşturulmuş, kendi sitelerimde bakım yaparken kullandığım kaynak kodu aşağıdadır. WordPress’in index.php‘sini aşağıdaki gibi değiştiriyoruz:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
 
   $bakim_modu = FALSE;
   $bakim_ip = "155.223.1.1"; 
   /* Üst satıra kendi IP adresinizi yazmalısınız. */
   /* Web sitesi sadece yukarıdaki IP sahibine açılacak.
      Diğerleri bakım mesajı görecek. Güncel IP adresinizi
      http://whatismyip.com adresinden öğrenebilirsiniz. */
 
   if (($bakim_modu && ($bakim_ip == $_SERVER['REMOTE_ADDR'])) || !$bakim_modu) {
      /* Eğer web sitesi bakımda değilse veya izinli IP
         sisteme giriş yapıyorsa orijinal wordpress 
         index.php'sindeki kodları çalıştır. Eğer index.php'nizde
         değişiklik yaptıysanız aşağıya olduğu gibi yansıtın. */
 
      /**
       * Front to the WordPress application. This file doesn't do anything, but loads
       * wp-blog-header.php which does and tells WordPress to load the theme.
       *
       * @package WordPress
       */
 
      /**
       * Tells WordPress to load the WordPress theme and output it.
       *
       * @var bool
       */
      define('WP_USE_THEMES', true);
 
      /** Loads the WordPress Environment and Template */
      require('./wp-blog-header.php');
 
   } else {
      /* Eğer web sitesi bakım halindeyse... */
      ob_start();
      /* Botlara web sitesinin geçici bakımda olduğu
         bilgisi gönderilir. Bir saat sonra tekrar denemeleri
         söylenir. */
      header('HTTP/1.1 503 Service Temporarily Unavailable');
      header('Status: 503 Service Temporarily Unavailable');
      header('Retry-After: 3600');
      header('Content-Type: text/html; charset=utf-8');
      include ("kapali.html");
      /* Bakım mesajının yer aldığı kapali.html adlı bir HTML
         dosyası oluşturun. Bu dosya index.php ile aynı 
         konumda olmalı ve UTF-8 karakter setiyle kodlanmış
         bir dosya olmalıdır. */
   }
 
?>

Dosyamızı bir defa böyle değiştirdikten sonra bakım zamanı tek yapmamız gereken

3
$bakim_modu = FALSE;

satırını

3
$bakim_modu = TRUE;

olarak değiştirmek ve

4
$bakim_ip = "155.223.1.1";

satırına güncel IP adresimizi yazmak. (Buradan öğrenebilirsiniz.)

Böylece başkaları ve arama motorları sitemizi bakımda olarak görürken biz normal gezmeye devam edebilir ve yapacaklarımızı kapabiliriz.

Uyarılar

  • Bakım modunda iken web sitesinin hiçbir yerinde ‘Dikkat bakımda’ yazmadığı için bakım modunu kapatmayı unutabilirsiniz, dikkat edin. :)
  • kapali.html’inizi tasarlayıp sitenize göndermeyi unutmayın, aksi halde hata mesajı alırsınız.
  • WordPress’de sürüm güncellerken index.php’yi güncellememeyi unutmayın.

İyi geceler.

bu yazı 3.650 defa okundu

Site hoşunuza gitti mi? Belki arkadaşlarınızın da gider.

İstekli

Aaa Reklam

+ Yorumunuzu Ekleyin 3 yorum

  • emre 06 Şubat 2009 20.49

    denedim ama oLmadı.yine de teşekkürLer.daha sonra bi daha deneyim ben bakaLım. :d

  • samy 03 Aralık 2010 09.31

    teşekkürler

  • Öner 21 Şubat 2011 20.19

    Teşekkürler.tam bunu arıyordum.denedim oldu.çok saolun hocam

Yorumunuzu Bırakın

Bu yazıya gönderilen yeni yorumları e-posta aracılığıyla bana bildir
Yeni gönderilenleri yorum yapmadan takip etmek için tıklayınız.

Yorumunuz başarıyla alındı. Onaylandıktan sonra yayımlanacaktır. Teşekkürler.

Twitler yükleniyor... 5 saniye sonra

Bıdı bıdı bıdı bıdı dıdı dıdı dudu dudu hıdı hıdı hödü hödü yüklüyoruz öhüm öhüm bıdı bıdı vs vs... 6 nanosaniye önce

Yüklenmenin geç olmasının sebebi ben değilim, Twitter API'sinin yavaş olması. Gudu gudu hıdı hödö büdü büdü... 25697 asır önce

Ha tabi bunları okumuşsan, bu sitenin çok gizli bir özelliğini bulmuşsun demektir. ;) Tebrikler. Bu "sürpiz yumurta"yı bulduğunu bana da haber verir misin? Tıkla! 6 dinazor önce

Geçen Yıllarda Bu Hafta

2011

Bunun Burada Ne İşi Var?

Bunun Burada Ne İşi Var?

Dün şehre inmek için Sayın Menderes Türel’in zamanında Hafif Metro ...

Windows 7’de Bilgisayarınızın Aldığı Puanı Değiştirin

Windows 7’de Bilgisayarınızın Aldığı Puanı Değiştirin

Biliyorsunuz Microsoft, Windows Vista’dan bu yana bilgisayarlar için bir performans ...

Dördüncü Sınıfın Birinci Döneminden Öğrenci Görüşleri

Dördüncü Sınıfın Birinci Döneminden Öğrenci Görüşleri

Dördüncü sınıfın yarısı bitti. Okuldan mezun olmak üzereyim. İyisiyle kötüsüyle bir ...

UBenzer’den Alın!

UBenzer’den Alın!

Ablam evdeki kullanılmayanları ayırmış, “Umut bunları sat.” dedi. Hazır elime ...

2009

Kısık Işık

Kısık Işık

Tavana asılmış tek beyaz floresan lambayı sevemedim bir türlü… “Ben ...

Antalya Toplu Taşıma Sisteminin Sorunları - 1

Antalya Toplu Taşıma Sisteminin Sorunları - 1

Antalya’da ulaşım bir ölüm. Trafik sıkışıklığı, haftada bir yönü değişen ...

2008

14 Şubat

14 Şubat

Biliyorsun bugün 14 Şubat. Daha iki gün öncesinden hazırdı zaten ...

Uyumadan Önce Son Boşluk

Uyumadan Önce Son Boşluk

Uykuya dalmadan önce düşünürüm… Kötü alışkanlıklarımdan biridir. Aklıma ne gelirse ......

NES Emulatörleri

NES Emulatörleri

Daha önceki şu iki yazımda (1.si, 2.si), çocukken bolca oynadığımız ...

Son Yorumlar