Shared Hosting’lerde WordPress Taşınması

Bazı ufak tefek işleri hızlıca host edebilmek, yeri geldiğinde eşe dosta da hosting ayırabilmek için “bayi paketi” adıyla da bilinen “reseller” hosting paketlerinden kullanıyorum. Bu bir ya da birden fazla siteyi host edebilmenizi sağlayan “hosting (barındırma)” paketlerinde genelde eliniz kolunuz bağlı olur. İşler WHM ya da cPanel gibi paneller üzerinden yürür.

Örneğin, sunucunuza SSH yapamazsınız. Yeni bir paket kuramazsınız. Yeni bir yazılım kuramazsınız. Sadece web arayüzünden erişerek bir şeyler yapabilirsiniz. Birçok insanın işini görmeye yetebilir fakat bizim elimizi kolumuzu bağlıyor.

“Sunucunuza” dedim değil mi? Hata işte. Sunucu falan da yok ortada. Web site içeriğiniz, diğer müşterilerin içeriğiyle birlikte ortak sunucularda tutuluyor. Zaten bu yüzden “paylaşımlı barındırma (shared hosting)” deniliyor bu paketlere. Hatta sizinle aynı sunucuda host edilen bir uygulamadaki güvenlik açığı, tüm sunucuyu tehlikeye atıp sizin içeriğinize de zarar verebilir ki bu örnekleri sıkça duyuyoruz.

Yakin zamanda, WordPress kurulu bir alan adını değiştirmemiz gerekiyordu. Site, tüm içeriğiyle birlikte “example1.com” üzerinden “example2.com” üzerine taşınacaktı. Bu işlem WHM üzerinden rahatlıkla yapılabiliyor. Fakat bazen hosting şirketleri, WHM’deki yetkilerinizi de kısıtlıyor.

Konuyla ilgili açtığım support ticket’ına “5 $ + KDV” yanıtı gelince epey şaşırdım. Elbette ki bir alan adını değiştirmek, bütün sitenin sorunsuz çalışacağı anlamına gelmez. Fakat en azından domain bazlı taşımayı yapıp, devamını bana paslayabilirlerdi.

Dedik ve şu an buradayız. Bir yandan işlemi gerçekleştirip bir yandan da yazıyı yazıyorum.

cPanel üzerinden “Yedekleme” kısmına girelim ve başlayalım.

Database’in Yedeklenmesi

Bildiğiniz üzere WordPress, arkaplanda bir veritabanına ihtiyaç duyuyor. İlk adım olarak bu veritabanının yedeğini alalım.

cPanel üzerinden MySQL yedeği
cPanel üzerinden MySQL yedeği

Yedek alınacak veritabanının üzerine tıkladığınızda, bir tarball indirilir. Sonrasında yeni domain’in cPanel’ine geçerek yedekleme ekranına geliyoruz. “Gözat” düğmesinden tarball’ı gösterip “Yükle” düğmesine tıklayarak MySQL yedeğinin taşınma işlemini gerçekleştiriyoruz.

Sonrasında phpMyAdmin’e girerek veritabanının muhtemelen “yeni bir isimle” taşınmış olacağını görüyorsunuz. Bu bilgi bizim için çok önemli. Çünkü WordPress konfigürasyonunu buna göre değiştirmemiz gerekecek.

Giriş Dizininin Yedeklenmesi

WordPress’in tüm dosyalarının hâli hazırda giriş dizininizde olduğunu var sayıyorum. Bu nedenle giriş dizininin tam yedeğini alacağız.

Öte yandan, WordPress’i bir alt dizin içine (“wordpress” gibi) kurduysanız, yalnızca o dizinin yedeğini de alabilirsiniz.

cPanel üzerinden giriş dizini yedeği
cPanel üzerinden giriş dizini yedeği

Bu kısım da size yine bir tarball verecek. Bu tarball içinden sadece “public_html” dizinini alıp yeni bir zip oluşturuyoruz. Yeni sitenin cPanel’ine geçip “Dosya Yöneticisi” üzerinden bu tarball’ı upload edip açacağız.

cPanel üzerinden dosya upload'ı
cPanel üzerinden dosya upload’ı

Full yedeği, yedekleme menüsünden geri dönme şansımız da vardı. Fakat eski alan adınıza ait bazı “.htaccess” gibi özel dosyalar ya da e-posta hesaplarına ait dosyalar canımızı sıkabilir. Bu nedenle böyle bir yöntemi tercih ettim. Ne kadar sağlıklı olur, tartışmalı.

cPanel üzerinde arşiv ayıklama
cPanel üzerinde arşiv ayıklama

Tüm bu arşivi açtığımızda, elimizde “/home/user/public_html” altında yine bir “public_html” dizini olacak. Bu dizinin tüm içeriğini de bir üste taşıyacağız. Takdir edersiniz ki “public_html” altında sitemizin dosyalarını doğrudan servis etmek istiyoruz.

Veritabanı Üzerinde Düzenlemeler

Import edilen veritabanı, eski WordPress sitesine ait veriler barındıracağından, bunların değiştirilmesi gerekmektedir. Bunun için de cPanel üzerinden phpMyAdmin uygulamasını kullanabiliriz.

Yeni WordPress veritabanınız üzerindeki “wp_options” tablosunda yer alan “siteurl” ve “home” bilgilerini, güncel web site adresinizle değiştirmeniz gerekmektedir.

phpMyAdmin üzerinde field değişikliği
phpMyAdmin üzerinde field değişikliği

wp-config.php Değişiklikleri

Hatırlarsanız, yukarıda “veritabanı isminin değiştiğinden” bahsetmiştik. Taşıdığınız yeni veritabanı ismi, o veritabanı için oluşturduğunuz yeni kullanıcı ve bu yeni kullanıcının parolasını “wp-config.php” dosyası içine yazmamız gerekiyor.

Dosya içerisinde “DB_NAME”, “DB_USER” ve “DB_PASSWORD” alanlarını uygun şekilde değiştirip dosyayı kaydettiğinizde, işlem tamamlanmış olacaktır.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'yeni veritabanı adı');

/** MySQL database username */
define('DB_USER', 'yeni db kullanıcısı');

/** MySQL database password */
define('DB_PASSWORD', 'yeni kullanıcının parolası');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

Önemli Notlar

  1. Eğer cPanel üzerindeki “Dosya Yöneticisi” ile yapacağınız upload’larda sıkıntı yaşarsanız, bir FTP istemcisi kullanmanızı öneririm.
  2. Eğer eski WordPress sitenizde bazı eklentiler – özellikle caching ile ilgili – varsa, bu taşıma süreçleri sancılı hâle gelebilir. Benim örneğimde taşıma işlemi sonrasında caching eklentilerini kapattığımda sorunum çözüldü.
  3. Eğer sunucu üzerinde herhangi bir yönlendirme (.htaccess) konfigürasyonunuz varsa, bu kısımları da gözden geçirmeniz gerekecektir.
  4. Bu değişiklik, eski alan adıyla ilgili tüm iletişiminizi kesecektir. Dolayısıyla eski alan adında bir “kalıcı yönlendirme (301)” yapmanız gerekir. Aksi takdirde eski linkleriniz çalışmayacaktır.
  5. Alan adı değiştirme işleminin Arama Motoru Optimizasyonu (SEO) konusunda olumsuz etkileri olacaktır. Bu olumsuz etkileri minimuma indirmek için profesyonel destek alabilirsiniz.

Sonuç Olarak

Elimdeki bir işi yaparken bu rehberi hazırladım. Fakat arada karşılaşmanız muhtemel birçok hata olacaktır. Hataların haricinde arayüzde göreceğiniz birçok “Warning” de olacaktır. İşlemler tamamlanana kadar bu uyarıları göz ardı ediniz. Sonrasında uyarıların tekrar ettiğini görürseniz de bu uyarı sebepleri sunucudaki bir hata ya da eksiklikten mi kaynaklanıyor, yoksa sizin taşıma işinizde mi bir hata var; bunu tespit edip yola öyle devam etmelisiniz. Maalesef sunucuya erişimimiz olmayan bir senaryoda elimizden gelenler bunlar.

Nihayetinde çalıştı, bu da benim için yeterli oldu 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir