VPS WordPress Kurulumu 2018 – Performans için Nginx ve PHP7.2

WordPress en popüler blog platformlarından biridir. İnternet’teki tüm web sitelerinin %30 kadarı WordPress ile çalışmaktadır. Amazon, DigitalOcean, Linode gibi cloud servis sağlayıcıları kullanarak veya cPanel, Plesk destekli herhangi bir php, mysql sunucu kiralayarak siz de kolayca kurulum yapabilirsiniz. Bu yazımızda tüm vps, vds, cloud sağlayıcılarında çalışabilecek bir kurulum yapacağız.

WordPress internet üzerinde yayın yapan sitelerin %31.6’sının alt yapısını sağlıyor.
Bu gerçekten çok büyük bir oran.

İşletim sistemi olarak Ubuntu 14 (isterseniz 16 ve 18 de kullabilirsiniz), Web sunusu olarak nginx, php sürümü olarak 7.2 ve standart linux dağıtımları depolarında standart olarak bulunan Oracle Mysql 5.6 kullanacağız. Bununla beraber Apache kurulumu da çok da farklı değil fakat nginx yoğun yükte daha sorunsuz ve performanslı olduğu için onu tercih ettik. Aynı şekilde PHP7.2’nin PHP5’e göre çok ciddi performans avantajı var. Bu nedenle 7 sürümünü kullandık. Servis sağlayıcısı olarak ise Vultr kullandım fakat bunun yerine Amazon Free Tier de kullanarak ücretsiz test yapabilirsiniz.

Vultr sunucu alanında hizmet veren Bitcoin ile de ödeme kabul eden, DigitalOcean ve Linode gibi bir çok ülkede daha centerı bulunan uygun fiyatlı cloud VPS, VDS sağlayıcısıdır.

Vultr sunucuyu oluşturunca sunucunun ip adresi ve şifresi mail ile geliyor. Bu aşamada isteğe bağlı olarak elimizdeki bir domain adresine DNS kayıtlarını kullanarak bir subdomain oluşturarak Vultr’daki sunucumuza yönlendirebiliriz. DNS olarak cloudflare kullandığım için A kaydı oluşturarak sunucunun ip adresini vererek bu işlemi gerçekleştirdim

CloudFlare nedir, ne işe yarar? Kurulumu kolay ücretsiz Cache, DNS, DDoS engelleme gibi hizmetler veren dünyanın en büyük internet altyapı firmalarındandır.
CloudFlare DNS ayarları oldukça kolaydır ve bir çok alternatife göre çok daha hızlı güncellenir. DynDNS yerine ücretsiz dns hizmeti olarak tercih edilebilir.

Artık putty üzerinden wptest.fikir.pw adresini kullanarak root kullanıcı adı ve maildeki şifre ile sunucuya bağlanabiliyoruz.

Putty nedir, nasıl kullanılır? Oldukça basit bir Linux, Unix SSH client’i olan putty’ye bağlanacağımız adresi yazarak doğrudan sunucumuza bağlanabiliyoruz.

Ubuntu PHP 7.2 Kurulumu

Bağlandıktan sonra ilk olarak güncel php 7.2 ppa adreslerini ekleyip apt-get update paket kurulum adreslerimizi güncel hale getiriyoruz ve apt-get install php ile php yi kuruyoruz:

apt-get install -y software-properties-common
add-apt-repository ppa:ondrej/php
apt-get update -y
apt-get install php php-fpm php-mysql php-gd -y
add-apt-repository komutunu kullanabilmek için software-properties-common paketini yükledik.

php -v komutunu php version öğrenme işlemi için kullanabiliriz. Şu an en son stabil sürüm olan php7.2 sistemimize kurulmuş oldu. Bununla beraber php mysql bağlantısı için gerekli olan eklentiyi ve resim işleme için lazım olan gd’yi de yüklemiş olduk.

php version öğrenme

Ubuntu Nginx Kurulumu

nginx ve mysql kurulumu da benzer. Öncelikle resmi depo adreslerini ekliyoruz. Bu daha güncel stabil sürümleri kurmamızı sağlıyor. İstersek update öncesi ve sonrası versionları apt-cache madison nginx ile karşılaştırabiliriz.

sudo add-apt-repository ppa:nginx/stable
apt-get update -y
apt-get install nginx
Görüldüğü gibi güncelleme öncesi son sürüm 1.4.6 görünüyor
Resmi PPA adreslerini ekleyip apt-get update -y ile paket adreslerini güncelleyince 1.12.2 sürümünü kurabiliyoruz.

nginx -v komutu ile son sürümün yüklendiğini teyit edebiliyoruz. Son sürüm kullanmak önemli çünkü Ubuntu 14 ile gelen eski sürümlerde http2 desteği yok.

nginx kurulu version öğrenmek için nginx -v komutunu kullanıyoruz.

Ubuntu Mysql Kurulumu

Mysql kurulumu için herhangi bir ppa adresi eklemize gerek yok. Oracle sağ olsun artık mysql’i pek güncellemiyor. Bunun yerine mysql’i geliştiren asıl takım mariadb’yi kurdu fakat biz kurulumu basit tutmak için dağıtım ile standart gelen mysql’i kuracağız. Bunun için:

apt-get install mysql-server -y

komutunu kullanıyoruz. Kurulum esnasında bizden şifre istiyor. Bunu belirleyip enter ile geçiyoruz

Ardından mysql -pŞİFRE komutu ile giriş yapıyoruz (arada boşluk yok) ve wptest ya da istediğimiz isimde bir veritabanı oluşturuyoruz.

mysql -pp2mezz
create database wptest;

WordPress son sürüm indirip kurma

Gerekli tüm yazılımları indirdik. Şimdi site için gerekli ayarları yapıp bu parçaları birbirine bağlamaya geldi. Öncelikle wptest.fikir.pw ya da test için kullandığımız domain adresimiz için nginx ayar dosyamızı oluşturalım. nano /etc/nginx/sites-enabled/wptest.fikir.pw ile açtığımız dosyanın içeriğini aşağıdaki gibi yapıyoruz. Böylece nginx site ekleme işlemini gerçekleştirmiş oluyoruz:

server {
        listen 80;
        root /var/www/wptest.fikir.pw;
        index index.php index.html;
        server_name wptest.fikir.pw;


        location / {
                try_files $uri $uri/ =404;
        }


        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }


        location ~ /\.ht {
                deny all;
        }
}

Bu ayar dosyasında sitemizin yayın yapacağı dizini /var/www/wptest.fikir.pw olarak belirledik. mkdir /var/www/wptest.fikir.pw ile bu klasörü oluşturup, nginx -t komutu ile ayarların düzgün olduğunu kontrol ettikten sonra service nginx restart komutu ile nginx’i yeniden başlatarak bu ayarları aktif hale geliyoruz. Şu an hiçbir dosya olmadığı için bu adrese sorgu attığımızda 403 Forbidden hatası alıyoruz:

nginx site ekleme

Şimdi sıra wordpress son sürüm indirip bu klasöre atmaya ve kurulumu tamamlamaya geldi. ilk 3 komut ile son sürümü indirip klasöre kopyalıyoruz, chown ile ise nginx’e bu klasörde işlem yapabilmesi için yetki veriyoruz. Bunu yapmazsak özellikle eklenti ve tema kurulum aşamalarında sorunlar yaşayabiliriz.

wget http://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
rsync -avzh ~/wordpress/ /var/www/wptest.fikir.pw/
cd /var/www/wptest.fikir.pw/
chown www-data:www-data . -R

Artık DNS kayıtlarımızda düzgünse web tarayıcı ile test adresimize gidip kurulum ekranını görebiliriz.

chown ayarları düzgün ise dil seçme ekranı geliyor. Kurulum ingilizce olarak başladıysa chown ayarlarını kontrol edin.
Php Mysql eklentisini kurduğumuz için kurulumun sonraki aşamasına geçebiliyoruz

Türkçe seçip devam ettikten sonra mysql kullanıcı adı şifremizi veriyoruz.

Veritabanı ayarlarını giriyoruz. Mysql için ayrı bir kullanıcı oluşturmadığımız için root kullanıyoruz.

Site başlığını, wordpress kullanıcı adı ve şifremizi de belirledikten sonra kurulumumuz tamamlanıyor.

WordPress kurulumu bu kadar. Gerekli eklentiler ve performans ip uçları için sonraki yazılarımızı takip edin 😀 .

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir