Ana içeriğe geç

Docker Compose ile WordPress Kurulumu: Adım Adım Rehber

Bu Rehberde Ne Öğreneceksiniz?

Bu rehberde Docker Compose kullanarak WordPress altyapısını tek bir yapılandırma ile ayağa kaldırmayı öğreneceksiniz.

  • WordPress, MySQL ve Nginx servislerini konteyner mimarisiyle çalıştırma
  • Let’s Encrypt ile ücretsiz SSL sertifikası alma
  • SSL sertifikalarını otomatik yenileyerek kesintisiz HTTPS sağlama

Teknik Özet

Bu rehber, Ubuntu üzerinde Docker Compose kullanarak WordPress kurulumunu anlatır.
Manuel LAMP/LEMP kurulumları yerine; veritabanı, uygulama ve web sunucusu konteynerler üzerinden izole şekilde çalıştırılır.

Kurulum süreci şu adımları kapsar:

  • Nginx web sunucusu yapılandırması
  • Ortam değişkenlerinin .env dosyası ile yönetilmesi
  • SSL sertifikası alınması
  • Sertifika yenileme sürecinin otomatikleştirilmesi

Adım 1: Nginx Web Sunucusu Yapılandırması

İlk olarak projeyi barındıracak dizini oluşturun ve Nginx yapılandırma dosyasını açın:

mkdir wordpress && cd wordpress
mkdir nginx-conf && nano nginx-conf/nginx.conf
  • Bu komutlar proje klasörünü oluşturur ve Nginx ayar dosyasını düzenlemeye açar.

Bu yapılandırma:

  1. Alan adını tanımlar

  2. PHP isteklerini WordPress konteynerine yönlendirir

  3. SSL doğrulama taleplerini karşılar


Adım 2: Ortam Değişkenlerini Tanımlama

  1. Veritabanı bilgileri gibi hassas verileri .env dosyasında tutarak güvenliği artırın:

nano .env

Örnek içerik:


MYSQL_ROOT_PASSWORD=parolaniz
MYSQL_USER=wp_kullanici
MYSQL_PASSWORD=wp_sifre

⚠️ Önemli:

  1. .env dosyasını mutlaka .gitignore içine ekleyin.
  • Bu sayede şifreleriniz yanlışlıkla paylaşılmaz.

Adım 3: Docker Compose ile Servisleri Başlatma

  • docker-compose.yml dosyasında aşağıdaki servisler tanımlanır:
  1. MySQL (db)

  2. WordPress (PHP-FPM)

  3. Nginx (webserver)


nano docker-compose.yml

  • Bu dosya:
  1. Kullanılacak Docker imajlarını

  2. Servislerin birbiriyle nasıl haberleşeceğini

  3. Volume ve network yapılarını belirler.


Tüm altyapıyı başlatmak için:


docker-compose up -d
  • Bu komut WordPress ortamını tek seferde yayına alır.

Adım 4: SSL Sertifikası ve Otomatik Yenileme

  1. Let’s Encrypt ile ücretsiz SSL sertifikası alınarak siteniz HTTPS üzerinden yayınlanır.
  • Önce test (staging) sertifikası, ardından canlı sertifika oluşturulur.

Sertifikaların otomatik yenilenmesi için bir betik oluşturun:


nano ssl_renew.sh
chmod +x ssl_renew.sh

  • Bu betik:
  1. Sertifika süresini kontrol eder

  2. Gerekirse otomatik yeniler

  • Nginx’i kesintisiz şekilde yeniden yükler

Cron’a ekleyin:


sudo crontab -e

  • Dosyanın sonuna ekleyin:

0 12 * * * /home/kullanici/wordpress/ssl_renew.sh
  • Bu görev her gün otomatik sertifika kontrolü yapar.

Sıkça Sorulan Sorular (SSS)

1. Konteynerleri durdurursam verilerim silinir mi? Hayır. Volume yapısı sayesinde veriler sunucu diskinde kalıcıdır.

2. Nginx yerine Apache kullanabilir miyim? Evet, ancak Nginx Docker ortamlarında daha hafif ve performanslıdır.

3. WordPress için neden PHP-FPM kullanılıyor? Nginx, PHP’yi doğrudan çalıştıramaz. PHP-FPM bu görevi üstlenir.

4. Alan adımı nasıl bağlarım? Alan adı panelinden sunucu IP adresine A kaydı eklemeniz yeterlidir.


SorunOlası NedenÇözüm
Bağlantı reddedildiGüvenlik duvarı kapalı80 ve 443 portlarını açın
Veritabanı hatası.env bilgileri hatalıBilgileri kontrol edin
SSL alınamadıDNS yayılmadıAlan adı yönlendirmesini doğrulayın

Sonuç

Bu rehberle Docker üzerinde güvenli, taşınabilir ve yüksek performanslı bir WordPress altyapısı kurmuş oldunuz.

🚀 Rabisu Bulut altyapısında bu yapıyı dakikalar içinde canlıya alabilirsiniz.