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.
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.
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;
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.
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-admin
klasö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.
- How to install WordPress. WordPress Support ↩
- Sunuculardaki “Shell” nedir ve ne işe yarar? Acemi Blogcu ↩
- SET PASSWORD Statement. MySQL Documentation ↩
- Vivek Gite. (2018). MySQL Change a User Password. nixCraft ↩
- Navjot Singh. (2020). Download and Install WordPress Via the Shell Over SSH and With WP-CLI. envatotuts+ ↩
- Justin Ellingwood. (2016). How To Install WordPress with LAMP on Ubuntu 16.04. DigitalOcean Community ↩
- Thoriq Firdaus. (2019). How to Install WordPress via Command Line. Hongkiat ↩
- Jeff Wilson. (2015). How to upgrade a WordPress website via SSH ↩
- DreamHost. (2017). How to Upgrade WordPress Core from the Command Line with WP-CLI ↩