Hem kolay yönetim hem de daha iyi performans için wordpress sitelerini aynı yerden çalıştırmaya karar verdim, detaylı bir araştırmanın ardından bu işlem için wp-hive eklentisini kullanmanın en iyi yol olduğu kanısına vardım. Eklentiyi kurdum, taşıma işleminde aşağıdaki sırayı izledim.

Eklentiden taşımayı yapacağımız siteyi ekliyoruz.

Taşıyacağımız sitenin admin paneline girip upload klasörünün yerini kontrol ediyoruz, bu yeri taşınacak alana kopyalıyoruz. Taşınacak sitenin tema ve eklentilerini de kontrol edip eğer eksik bir eklenti tema varsa bunları da taşıancak yere kopyalıyoruz.

Webserverdan taşımayı yapacağımız sitenin ayarlarını yeni adres olarak değiştiriyoruz.

Site adresini açıp sıfırdan kurulum yapıyoruz. Eski veritabanını taşımak için aşağıdaki küçük scripti hazırladım, candb.php ezsql benzeri bir sql objesi. Eğer veritabanınız eski ise, posts tablosunda post_category var ise eski değişkenini true yapıyosunuz.

Eğer latin1 – utf8 hatası varsa taşımadan önce http://www.webcadisi.com/latin1-wordpress-veritabaninizi-utf8e-cevirmek.html adresindeki işlemleri yapıyoruz.

<?php
define('S_BLIB','/home/lib/');
include(S_BLIB.'candb.php');
$db = new candb('user', 'sifre', 'wp', 'localhost', 'utf8');
setlocale(LC_ALL, 'tr_TR.UTF-8');
$nerden = 'plajlar';
$uzanti = 'p_';
$eski = true;
$tasinacaklar = array('options','commentmeta','comments','links','users','usermeta','term_taxonomy','term_relationships','terms','posts','postmeta','statpress');
$baglan = $db->query("select * from wp_commentmeta");
foreach ($tasinacaklar as $t) {
  if ($eski) {
    if ($t=='posts') {
      $db->query("ALTER TABLE wp.".$uzanti."posts ADD post_category INT(4) NOT NULL DEFAULT '0' AFTER post_title ;");
      echo "ALTER TABLE wp.".$uzanti."posts ADD post_category INT(4) NOT NULL DEFAULT '0' AFTER post_title ;<br />";
    } else if ($t=='links') {
      $db->query("ALTER TABLE wp.".$uzanti."links ADD link_category INT(4) NOT NULL DEFAULT '0' AFTER link_target ;");
      echo "ALTER TABLE wp.".$uzanti."links ADD link_category INT(4) NOT NULL DEFAULT '0' AFTER link_target ;<br />";
    }
  }
  echo "truncate wp.".$uzanti.$t."<br />";
  echo "INSERT INTO wp.".$uzanti.$t." SELECT * FROM ".$nerden.".wp_".$t."<br />";
  $db->query("truncate wp.".$uzanti.$t);
  $db->query("INSERT INTO wp.".$uzanti.$t." SELECT * FROM ".$nerden.".wp_".$t);
}
$db->query("UPDATE wp.".$uzanti."options SET option_name='".$uzanti."user_roles' WHERE option_name='wp_user_roles';");
echo $nerden .' tamam';
?>

Bunu çalıştırıyoruz.
Yeniden taşınacak sitenin admin paneline giriyoruz, girişte hata alırsanız 2 dosyada düzenleme yapmak gerekiyor.
wp-admin/users.php ve wp-admin/menu.php bu dosyalarda düzenleme yaptıktan sonra wp-admin/users.php dosyasını browserdan açıp yetkileri düzeltiyoruz, daha sonra bu dosyalarda yaptığımız düzenlemeyi güvenlik sorunu olmaması için geri alıyoruz.

WordPress admin panelde eklentilerimizi ve temamızı kontrol ediyoruz. Eklentilerde eğer ayrı tablo kullanan bir eklentiniz var ise onu etkisizleştirip tekrar etkinleştir yaparak kayıp veritabanlarının tekrar oluşmasını sağlıyoruz. Eklentileri düzenlememiz bittikten sonra taşıdığımız yerde robots.txt, favicon ve sitemap.xml dosyalarını koymak üzere wp-content/wp-hive/domain seklinde dizin oluşturuyoruz. Eğer xml-sitemap eklentisini kullanıyorsak buna dosyayı yazacağı yeri veriyoruz ve yeniden oluştur diyoruz.

Taşıma tamalandı. :)


“WordPress sitelerini biraraya toplamak” hakkında yorum yapılmamış

Bu başlığa henüz hiçkimse yorum yapmamış.

Bir Cevap Yazın