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.