Uzak Sunucu Üzerinde WordPress İşlemleri

WordPress kurulum aşaması genelde wordpress.org adresinden indireceğiniz son sürüm paketin ftp aracılığıyla uzak sunucuya yüklenmesi şeklinde gerçekleştirilmekte.

AA

Dolaylı olarak ilerleyen bu süreç aradan sizin çıkmanız, sadece sürecin organizasyonunu yürütmenizle daha hızlı ve etkili şekilde sonuçlandırılabilmekte. Hatta, telefonunuzla bir elinizde kahve, diğer elinizde telefonla yürürken uzak bir sunucuya WordPress kuruyor bile olabilirsiniz1.

Bu yazının temelini DigitalOcean gibi firmalar tarafından tek tıkla kurulabilecek uygulamalar dışında yapılandırmaları kendinize göre belirlediğiniz bir sunucu oluşturuyor. Örneğin aşağıdaki yönergeler yeni oluşturulmuş bir LAMP / Ubuntu 16.04 sunucu üzerinde gerçekleştirilmekte. Not olarak belirtmeliyim ki, yukarıda bir elinizde kahve diğer elinizde telefon ile başlayan bir örnek verdim. SSH bağlantısı bu anlamda çok fazla serbestlik sun(a)mamakta. Bu nedenle Mosh (Mobile SHELL) yazısını referans göstermem uygun olacaktır.

Wordpress release

Sunucuya dair bir diğer not da şu, DigitalOcean LAMP droplet oluşturulduğunda yayın gerçekleştireceğiniz klasör yolu /var/www/html/ olarak tanımlanacaktır. Dolayısıyla yükleme işlemlerimizi bu yol üzerinden gerçekleştireceğiz2. Elbette alternatif olarak /tmp yolunu da kullanabilirsiniz.

Uzak Sunucuya WordPress Kurmak

Yayınlanmış son sürüm arşivlenmiş wordpress’i sunucumuza indirelim, paketi açalım ve arşiv dosyasını silelim.

wget https://wordpress.org/latest.tar.gz
tar xfz latest.tar.gz
rm latest*
cd wordpress

Bu işlem sonucunda kurulum wordpress isimli klasör oluşturularak gerçekleştirilecektir. Apache, Nginx ayarlarıyla root olarak /wordpress klasörünü işaret edebileceğimiz gibi dosyaları bir üst dizine de taşıyabiliriz.

mv -v * ../
rmdir wordpress

WordPress klasörü içinde olduğunuzu varsayarak, yukarıdaki komutu uygulayabilirsiniz. Bu sayede, wordpress klasörü içerisindeki tüm dökümanlar bir üst dizine taşınacaktır. Ardından wordpress klasörünü silebiliriz. Evet, dosyaların yüklenmesi işlemini tamamladık. Sunucu IP adresini tarayıcınıza girdiğinizde artık /wp-admin/setup-config.php sayfasındaki veritabanı ilişkilendirme sürecini başlatabiliriz. LAMP dahilinde kurulan MySQL’e ait root şifresi yine /root/.digitalocean_password dökümanı içerisinde root_mysql_pass ile sunuluyor olacak. nano ile dökümanı görüntüleyip şifremizi bir kenara not edelim.

cat /root/.digital*

Şifremizi not ettik, o halde root erişimi sağlayıp veritabanımızı oluşturabiliriz. veritabani-adi ve veritabani-sifresi‘ni bir kenara not etmeyi unutmayın. Veritabanını wordpress ile ilişkilendirirken wp-config.php dosyasındaki ilgili satırlarda bu bilgileri kullanacağız.

mysql -u root -p
create database veritabani-adi;
Wordpress db

Veritabanı oluşturduktan sonra root dışında bir başka kullanıcı oluşturup veritabanını oluşturduğumuz kullanıcıyla ilişkilendirelim.

create user 'kullanici-adi'@'localhost' identified by 'kullanici-sifresi';
grant usage on *.* to kullanici-adi@localhost identified by 'kullanici-sifresi';
grant all privileges on veritabani-adi.* to kullanici-adi@localhost;
FLUSH PRIVILEGES;
use veritabani-adi;

Tanımlı tüm kullanıcıları listelemek isterseniz aşağıdaki komutu kullanabilirsiniz.

select User from mysql.user;

Şifre hatası alıyorsanız aşağıdaki komut ile yeni şifre tanımlayabilirsiniz3 4.

SET PASSWORD FOR 'kullanici-adi'@'localhost' = PASSWORD('yeni-kullanici-sifresi');

Evet, bu işlemler sonucunda WordPress siteniz yayına hazır hale gelmiş oldu5 6 7. MySQL veritabanı sunucunuzu MariaDB ile yeniden yapılandırmak isterseniz MariaDB yazımı inceleyebilirsiniz. Ek olarak, sunucuya kurmuş olduğunuz WordPress web sitenizi komut satırı ile yönetmek için WP-CLI başlıklı yazılarla devam edebilirsiniz.

Install wordpress cli

Uzak Sunucuda WordPress Güncellemek

Güncelleme işlemi için şimdilik 2 yöntem ileteceğim, farklı ihtiyaçlar çerçevesinde ilişkili bir durum oluşursa diğer alternatif yöntemlerle ilgili bilgilerle yazıyı güncelleyebilirim. İlk yöntemde WP-CLI üzerinden ilerleneceği için yazı içeriğinde bahsedilen kurulumların gerçekleştirilmiş olması gerekli. Ek olarak snap install doctl komutuyla da indirme işlemini gerçekleştirebilirsiniz8. Diğer yöntemde ise daha eski usül sayılabilecek şekilde, dosya indirme, silme gibi işlemler üzerinden güncelleme yapacağız. Örneklendirmeleri DigitalOcean ön tanımlı yapılandırmaları üzerinden yapıyorum. Server ayarlarınıza göre düzenlemeler yapmayı unutmayın. Ancak, önce iş güvenliği!

Hemen mysqldump -u [veritabani-kullanici-adi] -p [veritabani-adi] > ~/wordpress.sql komutu ile veritabanımızın bir yedeğini alalım. Ardından rsync -Waq [wordpress-kurulumunun-oldugu-dizin] [yedekleme-yapacagimiz-dizin] ile dosyalarımızı yedekleyelim.

rsync -Waq /var/www/html/ /var/www/backup/

WP-CLI İle WordPress Güncellemek

WP-CLI kurulumuyla ilgili olarak: WordPress İçin Komut Satırı Arayüzü yazısını okuyabilirsiniz. Sunucunuzda arayüzün kurulu olduğu varsayımıyla aşağıdaki adımları paylaşıyorum. Öncelikle sürüm karşılaştırması yapalım.

wp core update

Eğer birden fazla wordpress kurulumumuz varsa yol belirterek farklı kurulumlar üzerinden sürüm karşılaştırması gerçekleştirebiliriz.

wp core update --path='/var/www/html/'

wp core update yeni bir sürüm ile karşılaşılması durumunda kurulum işlemini başlatacaktır. Herhangi bir nedenden dolayı farklı bir sürümü kullanmak istiyorsanız wp core update --version=[versiyon-numarası] --force komutunu kullanabilirsiniz.

wp core update --version=nightly --path='/var/www/html/' --force

Yine -path üzerinden yol belirterek işlem gerçekleştirebilirsiniz. Yine versiyon yerine URL kullanarak da indirme işlemini başlatabilirsiniz9. Örneğin bir beta sürüm üzerinden güncelleme yapmak istiyor olabilir. O halde şöyle bir komut da işimizi görecektir.

wp core update https://wordpress.org/wordpress-4.9-RC1.zip --path='/var/www/html/' --force

Evet, yapmanız gereken bu kadar.

SSH Üzerinden WordPress Güncellemek

WordPress kurulumunun olduğu dizine geçip wget ile istediğimiz versiyona ait arşivi indirelim ve açalım.

cd /var/www/html
wget https://wordpress.org/latest.zip
unzip latest.zip
rm latest.zip

Sırada eski kuruluma ait wp-includes ve wp-adminklasörlerinin silinmesi var.

rm -rf /wp-includes
rm -rf /wp-admin

Silme işleminin ardından indirdiğimiz arşivin açılmasıyla oluşturulan wordpress klasörü içeriğini bir üst dizine taşıyalım.

mv wordpress/* ../
rm -rf /wordpress

Ek olarak dosya taşıma işlemini sadece wp-includes ve wp-admin belirterek ve diğer dosyaları hariç tutarak gerçekleştirmek için hariç tutma parametresini kullanabilirsiniz. Aşağıdaki ifade wp-content ve wp-config ile başlayan dosya/dizinler haricinde taşıma işlemi gerçekleştirecektir.

mv !(wp-content|wp-config*) /var/www/html/wordpress/* /var/www/html/

Evet, hepsi bu kadar. Uygulama esnasında karşılaştığınız sorunları iletmeyi unutmayın.