WordPress Docker Kurulumu
WordPress’i Docker ile çalıştırmak, geliştiricilerin ve kullanıcıların WordPress ortamlarını hızlı bir şekilde kurmalarına, yönetmelerine ve ölçeklendirmelerine olanak tanır. İlk adım, Docker ve Docker Compose’un sisteme kurulu olduğundan emin olmaktır. Docker, konteyner tabanlı bir platformdur ve Docker Compose, çoklu konteynerli uygulamaları tanımlamak ve çalıştırmak için kullanılır.
“`bash
sudo apt update
sudo apt install docker.io docker-compose -y
“`
Bu komutlar Ubuntu tabanlı sistemlerde Docker ve Docker Compose’u kurar. Kurulum tamamlandıktan sonra, Docker’ın doğru şekilde çalıştığını kontrol etmek için şu komutu kullan:
“`bash
sudo systemctl status docker
“`
Docker Kompozisyon Dosyası Oluşturma
WordPress’i Docker ile çalıştırmak için bir `docker-compose.yml` dosyasına ihtiyaç vardır. Bu dosya, WordPress ve ona bağlı olan MySQL veritabanı için gerekli konteynerleri tanımlar. Aşağıda, WordPress ve MySQL için basit bir `docker-compose.yml` dosyası örneği bulunmaktadır:
“`yaml
version: ‘3.1’
services:
wordpress:
image: wordpress:latest
ports:
– 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpressuser
WORDPRESS_DB_PASSWORD: wordpresspassword
WORDPRESS_DB_NAME: wordpress
volumes:
– ./wp-data:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpressuser
MYSQL_PASSWORD: wordpresspassword
volumes:
– ./mysql-data:/var/lib/mysql
“`
Bu dosya, WordPress ve MySQL konteynerlerini tanımlar. `volumes` kısmı, veri kalıcılığını sağlamak için kullanılır.
Docker Compose ile WordPress’i Başlatma
`docker-compose.yml` dosyası oluşturulduktan sonra, aşağıdaki komutla WordPress’i başlatmak mümkündür:
“`bash
docker-compose up -d
“`
Bu komut, WordPress ve MySQL konteynerlerini arka planda çalıştırır. `-d` parametresi, arka planda çalışmasını sağlar.
WordPress Kurulumunu Tamamlama
WordPress’i başlattıktan sonra, tarayıcıdan `localhost:8080` adresine giderek kurulum ekranına erişilebilir. Burada veritabanı bağlantı bilgileri otomatik olarak doldurulmuş olacaktır. Yalnızca site başlığı, kullanıcı adı, şifre ve e-posta adresi gibi bilgiler girilmelidir.
Veri Yedekleme ve Taşıma
Docker konteynerleri, verileri doğrudan konteyner içinde saklar, ancak `volumes` kullanarak bu verileri kalıcı hale getirilir. Yedekleme yapmak için, WordPress ve MySQL verilerinin bulunduğu dizinler kopyalanabilir:
“`bash
cp -r ./wp-data ./backup/wp-data
cp -r ./mysql-data ./backup/mysql-data
“`
Güncellemeler ve Eklentiler
WordPress’in Docker konteyneri içinde çalışıyor olması, güncellemelerin ve eklentilerin yönetimini biraz farklı kılar. WordPress yönetim paneli üzerinden yapılan güncellemeler ve eklentiler, konteyner yeniden başlatıldığında kalıcı olmayabilir. Bu durumda, konteyneri yeniden oluşturup başlatmak gerekir:
“`bash
docker-compose down
docker-compose pull
docker-compose up -d
“`
Bu komutlar, konteyneri durdurur, yeni görüntüleri çeker ve yeniden başlatır.
Güvenlik ve Erişim Kontrolü
WordPress Docker kurulumunda, güvenlik önemlidir. Kullanıcı adı ve şifreler güçlü olmalı, SSL sertifikası kullanılmalı ve gereksiz portlar kapatılmalıdır. Ayrıca, Docker konteynerlerine erişimi kısıtlamak için Docker’ın kendi güvenlik mekanizmalarından faydalanılabilir.
Log Yönetimi ve İzleme
WordPress ve MySQL konteynerlerinin loglarını izlemek için Docker komutlarını kullanmak mümkündür:
“`bash
docker-compose logs -f
“`
Bu komut, konteynerlerin loglarını gerçek zamanlı olarak gösterir.
Ölçeklenebilirlik
Docker, WordPress uygulamasını ölçeklendirmeyi kolaylaştırır. Birden fazla WordPress konteyneri çalıştırmak mümkündür, bu da yük dengeleme ve yüksek erişilebilirlik sağlar.
“`yaml
services:
wordpress:
deploy:
replicas: 3
“`
Bu şekilde, üç WordPress konteyneri çalıştırılabilir ve yük dağıtılabilir.
Sonuç
WordPress Docker ile çalıştırmak, esnek, taşınabilir ve ölçeklenebilir bir web uygulaması ortamı sunar. Docker’ın sağladığı izolasyon, WordPress’in geliştirilmesini ve yönetimini kolaylaştırır, aynı zamanda farklı ortamlarda tutarlılığı sağlar. Bu yaklaşım, hem geliştiriciler hem de son kullanıcılar için WordPress’in yönetimini daha verimli hale getirir.