Ana içeriğe geç

Ubuntu 18.04 Uzak MySQL Kurulumu ile WordPress Performansını Artırma

Bu rehberde ne öğreneceksiniz?​

Bu rehberde, WordPress gibi MySQL kullanan uygulamalarda performansı artırmak için veritabanını web sunucusundan ayırmayı öğreneceksiniz.
MySQL’i sadece belirli bir IP’den erişilebilir hale getirip bağlantıları SSL/TLS ile güvence altına alacağız.


🧠 Teknik Özet​

Ana konu: Ubuntu 18.04 üzerinde MySQL uzak veritabanı yapılandırması
Amaç: Web sunucusu ve veritabanı yükünü ayırarak performansı ve ölçeklenebilirliği artırmak
Yaklaşım:

  • MySQL’i uzak bağlantılara açma
  • SSL/TLS ile güvenli iletişim sağlama
  • IP bazlı kullanıcı yetkilendirme
  • WordPress’i uzak veritabanına bağlama

🛠 Gereksinimler​

  • 2 adet Ubuntu 18.04 Bulut Sunucu
    • tr1-db01: Veritabanı Sunucusu (MySQL)
    • tr1-web01: Web Sunucusu (Nginx + PHP)
  • Her iki sunucuda:
    • Sudo yetkili root olmayan kullanıcı
    • UFW güvenlik duvarı aktif
  • Web sunucuda Nginx ve PHP kurulu
  • Veritabanı sunucuda MySQL kurulu
  • (Önerilir) Web sunucuda alan adı ve Let’s Encrypt SSL

1️⃣ MySQL’i Uzak Bağlantılara Açma (Veritabanı Sunucusu)​

MySQL varsayılan olarak sadece yerel bağlantıları kabul eder.
Bu ayarı değiştirmemiz gerekiyor.

1.1 MySQL yapılandırma dosyasını açın​

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  • Bu dosya MySQL sunucu ayarlarını içerir.

  1. Dinlenecek IP adresini ayarlayın

[mysqld]
bind-address = db_sunucu_ip
  • Bu ayar MySQL’in dış ağdan bağlantı kabul etmesini sağlar.

  1. SSL/TLS bağlantısını zorunlu kılın

require_secure_transport = on
  • Bu ayar şifrelenmemiş bağlantıları engeller.

  1. SSL sertifikalarını oluşturun

sudo mysql_ssl_rsa_setup --uid=mysql
  • Bu komut MySQL için gerekli SSL anahtarlarını üretir.

  1. MySQL servisini yeniden başlatın

sudo systemctl restart mysql
  • Bu işlem yeni ayarları aktif eder.

  1. MySQL’in dinlediğini kontrol edin

sudo netstat -plunt | grep mysqld
  • Çıktıda db_sunucu_ip:3306 görünmelidir.

  1. Güvenlik duvarında MySQL’e izin verin

sudo ufw allow mysql

-Bu adım web sunucusundan gelen bağlantılara izin verir.


2️⃣ WordPress Veritabanı ve Kullanıcıları Oluşturma​

2.1 MySQL’e giriş yapın​


sudo mysql
  • Bu komut MySQL yönetim ortamını açar.
  1. WordPress veritabanını oluşturun

CREATE DATABASE wp_site;
  • Bu veritabanı WordPress tarafından kullanılacaktır.

  1. Yerel kullanıcı oluşturun

CREATE USER 'wp_local_user'@'localhost' IDENTIFIED BY 'guclu_sifre';
GRANT ALL PRIVILEGES ON wp_site.* TO 'wp_local_user'@'localhost';
  • Bu kullanıcı sadece veritabanı sunucusundan erişebilir.

  1. Uzak kullanıcı oluşturun

CREATE USER 'wp_remote_user'@'web_sunucu_ip' IDENTIFIED BY 'guclu_sifre';
GRANT ALL PRIVILEGES ON wp_site.* TO 'wp_remote_user'@'web_sunucu_ip';
  • Bu kullanıcı sadece web sunucusundan bağlanabilir.

  1. Yetkileri aktif edin ve çıkın

FLUSH PRIVILEGES;
exit
  • Bu işlem yetkileri hemen uygular.

3️⃣ Uzak Bağlantıyı Test Etme (Web Sunucusu)​

  1. Web sunucusuna bağlanın

ssh kullanici@web_sunucu_ip
  • Bu komut web sunucusuna SSH ile bağlanır.

  1. MySQL istemcisini kurun

sudo apt update
sudo apt install mysql-client
  • Bu araç uzak MySQL bağlantısı için gereklidir.

  1. Uzak veritabanına bağlanın

mysql -u wp_remote_user -h db_sunucu_ip -p
  • Bağlantı başarılıysa MySQL istemi açılır.

  1. SSL bağlantısını doğrulayın

status
  • Çıktıda SSL: Cipher in use satırı görünmelidir.

4️⃣ WordPress Kurulumu ve Yapılandırması​

4.1 WordPress’i indirin ve çıkarın​


cd ~
curl -O https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
  • Bu işlem WordPress dosyalarını indirir.

  1. Yapılandırma dosyasını hazırlayın

cp ~/wordpress/wp-config-sample.php ~/wordpress/wp-config.php
  • Bu dosya WordPress ayarlarını içerir.

  1. Güvenlik anahtarlarını oluşturun

curl -s https://api.wordpress.org/secret-key/1.1/salt/
  • Bu anahtarlar WordPress güvenliğini artırır.

  1. Veritabanı bilgilerini girin

define('DB_NAME', 'wp_site');
define('DB_USER', 'wp_remote_user');
define('DB_PASSWORD', 'guclu_sifre');
define('DB_HOST', 'db_sunucu_ip');
define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
  • Bu ayarlar WordPress’i uzak MySQL’e bağlar.

  1. Dosyaları web dizinine taşıyın

sudo cp -a ~/wordpress/* /var/www/html
sudo chown -R www-data:www-data /var/www/html
  • Bu işlem WordPress’i yayına hazırlar.

5️⃣ Web Arayüzü Üzerinden Kurulumu Tamamlama​

  1. Tarayıcıdan alan adınıza gidin:

https://ornek-domain.com
  • Dil seçimini yapın ve kurulumu tamamlayın. Kurulum sonrası WordPress yönetim paneline giriş yapabilirsiniz.

❓ Sıkça Sorulan Sorular (SSS)​

1. Neden veritabanını ayrı sunucuya taşımalıyım? Performans ve ölçeklenebilirlik sağlar.

2. SSL/TLS neden zorunlu? Veri trafiğini şifreleyerek güvenliği artırır.

3. Özel IP mi genel IP mi kullanmalıyım? Aynı bölgede ise özel IP önerilir.

4. Neden % yerine IP kısıtlaması kullandık? Yetkisiz erişim riskini azaltır.

5. Ubuntu 20.04 veya 22.04’te çalışır mı? Evet, adımlar büyük ölçüde aynıdır.

🎯 Sonuç​

Bu rehberle MySQL’i güvenli şekilde uzak bağlantılara açtınız. Web ve veritabanı yükünü ayırarak daha performanslı bir mimari kurdunuz.

👉 Rabisu Bulut platformunda bu yapıyı dakikalar içinde kurabilir, uygulamanızın performans farkını hemen gözlemleyebilirsiniz.