WP-ClI İle WordPress Taşıma İşlemi
WordPress ve web sitesi barındırma (hosting) konusuna WordPress web sitesinin bir sunucundan başka bir sunucuya taşınması işlemiyle devam edelim.
Sebep her ne olursa olsun, bu tür taşıma süreçlerinde önemli olan verileri sağlıklı bir şekilde aktarabilmek. Elbette veri ile kastım öncelikli olarak kullanılan veri tabanı (database) ve wp-content
içeriği.
Sunucular Arasında WordPress Transferi
Barındırma hizmeti aldığınız firmadan memnun kalmamış olabilirsiniz ya da bir müşteriniz için farklı bir sunucuda çalışma yürütüp sonrasında müşteriye ait sunucuya verileri düzgün bir şekilde taşımak isteyebilirsiniz, özetle sebep her ne olursa olsun günün birinde kendinizi bu tür bir süreç içerisinde bulabilirsiniz. Bu aşamada el yordamıyla ilerlemek mümkün; yönetim panelinizden veri tabanını (tabi uzak erişim sağlanmıyorsa) ve FTP bağlantısı ile tüm WordPress dosyalarını (ya da en temelde wp-config
içeriğini) bilgisayarınıza indirebilir ardından yeni sunucuya tekrar yükleyebilirsiniz. Ardından, veri tabanı içerisinde alan adını değiştirmeniz gerekir ki web sayfası erişilebilir ve düzenlenebilir hale gelsin. Bunun için bir metin editörü ya da SQL sorgusu da iş görecektir. Ancak, veri tabanının bir yedeğini aldığınızdan emin olmalısınız ki işlerin ters gitme ihtimaline karşın garantiniz olsun. Ben ilgili taşıma işlemini daha güvenli ve efektif olacağını düşündüğüm için WP-Cli aracılığıyla gerçekleştireceğim. wp-old ve wp-new adında 2 barındırma alanımız olsun. Örnek olarak DigitalOcean altında 2 farklı WordPress droplet oluşturdum. İlk işlemimiz elbette bu sunucular arasında SSH bağlantısı sağlayabilmek. Bunun için ilk olarak wp-old sunucusuna SSH bağlantısı gerçekleştirelim.
ssh root@[wp-old-alanadi-veya-ip-adresi]
Ardından, cat
ile var olan public key (id_rsa.pub) içeriğini alabiliriz ya da ssh-keygen
ile yeni bir key oluşturabiliriz.
ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub
Şimdi bu kodumuzu yeni sunucumuzdaki ~/.ssh/authorized_keys
dosyasına eklememiz gerekiyor.
nano ~/.ssh/authorized_keys
İlgili dosyanın en alt satırına yeni public key
içeriğini kaydedelim ve dosyayı kapatalım. Artık sunucular arasında SSH bağlantısı sağlayabiliriz. Eski sunucuya tekrar erişim sağlayıp yeni sunucuya SSH isteği gönderelim. Bağlantı sağlandıktan sonra exit
komutuyla erişimi sonlandırabilirsiniz. Yazının başında da belirttiğim gibi websitesinin taşınması sürecinde WP-Cli kullanacağım. Bu nedenle her iki barındırma alanına da WP-Cli kurulumu gerçekleştirmemiz gerekiyor.
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mkdir /usr/local/bin/.wp-cli
mv wp-cli.phar /usr/local/bin/.wp-cli/
echo "alias wp='/usr/local/bin/.wp-cli/wp-cli.phar'" >> ~/.bashrc
touch /usr/local/bin/.wp-cli/config.yml
echo "WP_CLI_CONFIG_PATH='/usr/local/bin/.wp-cli/config.yml'" >> ~/.bashrc
source ~/.bashrc
wp --info
Gerekli olan tüm araçlarımız ve bağlantılarımız da hazır olduğuna göre taşıma işlemine başlayabiliriz.
Veritabanını Taşımak
Eski barındırma alanında barındırılan WordPress web sitemizin veri tabanına wp core config
ile bağlanabilir wp db export
ile yedeğini alabiliriz. Hepimizin bildiği üzere, wp-config.php
dosyasında veri tabanı bilgileri yer almakta. Buradan ilgili bilgileri alarak ilerleyebiliriz.
wp core config --dbname='[veri-tabaninin-adi]' --dbuser=[veri-tabani-kullanici-adi] --dbpass='[veri-tabani-kullanici-sifresi]'
wp db export /tmp/wp-db-backup.sql
Veri tabanının kopyası hazır olduğuna göre bu dosyayı (wp-db-backup.sql
) yeni sunucuya aktarabiliriz.
scp /tmp/wp-db-backup.sql root@[wp-new-alanadi-veya-ip-adresi]:/tmp/wp-db-backup.sql
Bundan sonraki aşamaya yeni barındırma (wp-new
) alanında devam edebiliriz. İlk olarak sunucuya WordPress kurulumumuzu yapalım ve ardından kurulumuza veri tabanını aktaralım.
wp core download && wp config create --dbname='[veri-tabaninin-adi]' --dbuser=[veri-tabani-kullanici-adi] --dbpass='[veri-tabani-kullanici-sifresi]' && wp db import /tmp/wp-db-backup.sql -quiet
Hali hazırda WordPress kurulu ancak yapılandırılmamış ise sadece wp db import
komutunu da uygulayabilirsiniz. Yine yazının başında da belirttiğim gibi eski WordPress kurulumuna ait URL bilgilerinin de değiştirilmesi gerekiyor ki dosyalarımız görüntülenebilsin ve web sayfamız erişilebilir hale gelsin. Bu amaçla wp search-replace
komutunu kullanabiliriz.
wp search-replace "[wp-old\]" "[wp-new\]"
Veri tabanı içeriğini aktarma işlemimiz tamamlandı ve artık wp-new
var olan içeriğimizle (wp-old
‘dan aktardığımız) görüntülenebilir. Kimi zaman bu aşamada WordPress kullanıcısı oluşturmak isteyebilirsiniz.
wp user create [kullanici-adi] [kullanici-e-posta-adresi] --role=administrator --allow-root
Dosyaları Taşımak
Veri tabanının aktarılmasının yanı sıra görseller, eklentiler ve diğer varlıkların da taşınması aşaması daha kolay çözüme kavuşmaktadır.
rsync -r root@[wp-new-alanadi-veya-ip-adresi]:~/var/www/html/wp-content ~/var/www/html/
Son Kontroller
Veri tabanı ve dosyaların taşınması sürecinde herhangi bir sorun yaşanacağını düşünmüyorum. Ancak olası sınırlandırmalar ya da yazım hataları söz konusu olabilir. Bu gibi durumlarda ilgili adımı kontrol edip tekrarlayabilirsiniz. Ek olarak, WP-Cli‘nin bu web sitesi taşıma işleminin tek yolu olmadığı da aşikar. Mesela el yordamıyla adım adım ilerlemek de bir seçenek iken Duplicator1 gibi eklentilerden de faydalanmak mümkün.