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
.envdosyası 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:
-
Alan adını tanımlar
-
PHP isteklerini WordPress konteynerine yönlendirir
-
SSL doğrulama taleplerini karşılar
Adım 2: Ortam Değişkenlerini Tanımlama
- 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:
- .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:
-
MySQL (db)
-
WordPress (PHP-FPM)
-
Nginx (webserver)
nano docker-compose.yml
- Bu dosya:
-
Kullanılacak Docker imajlarını
-
Servislerin birbiriyle nasıl haberleşeceğini
-
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
- 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:
-
Sertifika süresini kontrol eder
-
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.
| Sorun | Olası Neden | Çözüm |
|---|---|---|
| Bağlantı reddedildi | Gü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.