Merhaba! Bu yazıda, Docker kullanarak yerel bilgisayarınızda ayarladığınız alan adı ile çalışan bir WordPress sitesi kurma sürecimi paylaşacağım. Bu süreçte Nginx, MySQL ve PHP-FPM kullanarak bir web ortamı oluşturduk. Adım adım ilerleyerek Dockerfile, docker-compose.yaml, gerekli konfigürasyon dosyaları ve bash betikleri ile bu kurulumu nasıl gerçekleştirdiğimi anlatacağım.
Proje Yapısı
Projede kullanılan dosyalar şunlardır:
Dockerfile: Docker imajını oluşturmak için gerekli talimatları içerir.
docker-compose.yaml: Docker container’larını tanımlayıp yönetmek için kullanılır.
wp-setup.sh: WordPress kurulumu ve yapılandırması için kullanılan bash betiği.
wptest.conf: Nginx yapılandırma dosyası.
Dockerfile
Dockerfile, Ubuntu tabanlı bir imaj oluşturmak için kullanılıyor ve gerekli paketlerin yüklenmesini sağlıyor. Ayrıca, Nginx yapılandırması ve WordPress kurulumu için gerekli dosyalar kopyalanıyor ve betikler çalıştırılıyor.
FROM ubuntu: En son Ubuntu imajını temel alır.
RUN apt-get update && apt-get install -y nginx php-fpm php-mysql curl: Gerekli paketleri günceller ve kurar.
COPY wptest.conf /etc/nginx/conf.d/wptest.conf: Nginx yapılandırma dosyasını imaj içine kopyalar.
COPY wp-setup.sh /usr/local/bin/: WordPress kurulumu için hazırlanan betiği kopyalar.
RUN chmod +x /usr/local/bin/wp-setup.sh: Betiğe çalıştırma izni verir.
RUN /usr/local/bin/wp-setup.sh && echo “Betik başarıyla çalıştı.” || echo “Betikte hata oluştu: $(cat /var/log/docker.log)”: Betiği çalıştırır ve başarı veya hata durumunu loglar.
EXPOSE 80: 80 portunu dışa açar.
CMD php-fpm8.3 & nginx -g ‘daemon off;’: PHP-FPM ve Nginx servislerini başlatır.
wp-setup.sh
Bu bash betiği, WordPress’in indirilmesi, kurulumu ve yapılandırılması işlemlerini otomatikleştirir.
curl -LO https://wordpress.org/latest.tar.gz: En son WordPress paketini indirir.
tar -xzvf latest.tar.gz: İndirilen arşivi açar.
chown -R www-datawordpress: WordPress dizininin sahipliğini değiştirir.
chmod -R 755 wordpress: WordPress dizinine uygun izinler verir.
cp wordpress/wp-config-sample.php wordpress/wp-config.php: Örnek yapılandırma dosyasını kopyalar.
sed -i “s/database_name_here/testdocker/” wordpress/wp-config.php: Veritabanı adını değiştirir.
sed -i “s/username_here/test/” wordpress/wp-config.php: Veritabanı kullanıcı adını değiştirir.
sed -i “s/password_here/test1/” wordpress/wp-config.php: Veritabanı şifresini değiştirir.
sed -i “s/localhost/db/” wordpress/wp-config.php: Veritabanı sunucusunu değiştirir.
nginx -t && nginx -s reload: Nginx yapılandırmasını test eder ve yeniden yükler.
wptest.conf
Nginx yapılandırma dosyası, test.uluc.me alan adını yönlendirmek ve WordPress için gerekli ayarları yapmak üzere yapılandırılmıştır.
listen 80: 80 portunu dinler.
root /var/www/html/wordpress: Web kök dizinini belirler.
server_name test.uluc.me: Sunucu adını tanımlar.
client_max_body_size 500M: Maksimum yükleme boyutunu belirler.
location /: Temel yönlendirme ayarları.
location ~ .php$: PHP dosyalarının nasıl işleneceğini tanımlar.
docker-compose.yaml
Docker Compose, birden fazla Docker container’ını tanımlayıp yönetmek için kullanılır. Bu dosyada MySQL ve WordPress servisleri tanımlanmıştır.
version: ‘3.7’: Docker Compose sürümünü belirtir.
services: Hizmetleri tanımlar.
db: MySQL servisi.
image: mysql:8: MySQL 8 imajını kullanır.
restart: always: service sonladırıldığında otomatik olarak tekrar ayağa kaldırır.
environment: Ortam değişkenlerini tanımlar.
ports: 3306 portunu dışa açar.
volumes: Veritabanı verilerini kalıcı hale getirir.
wordpress: WordPress servisi.
image: ardahanuluc/testdocker.1: Kendi oluşturduğunuz Docker imajını kullanır.
restart: always: service sonladırıldığında otomatik olarak tekrar ayağa kaldırır.
ports: 80 portunu dışa açar.
Kurulum Adımları
1- Proje Dizini Oluşturma:
Tüm dosyalar, image oluşturma işlemleri ve docker compose komutları oluşturulan bu dizinde yapılmak zorundadır.
mkdir dockerproject/wordpress
cd dockerproject/wordpress
2- Dosyaları Ekleyin:
Dockerfile
docker-compose.yaml
wp-setup.sh
wptest.conf
Dosya içi görünümü bu şekilde olacaktır.
3- Docker İmajını Oluşturma:
docker build -t ardahanuluc/testdocker:v1.1 .
4- Docker Compose ile Servisleri Başlatma:
docker-compose up -d
5- Alan Adını Yerel Çözümleme:
test.uluc.me (kendi belirlediğiniz alan adı) alan adını yerel ortamda kullanmak için hosts dosyanıza aşağıdaki satırı ekleyin:
127.0.0.1 test.uluc.me
6- Web Sitesine Erişim:
Tarayıcınızı açın ve http://test.uluc.me (kendi belirlediğiniz alan adı) adresine gidin. WordPress kurulum sihirbazını tamamlayarak sitenizi kullanmaya başlayabilirsiniz.
Sonuç
Bu blog yazısında, Docker kullanarak yerel ortamınızda test.uluc.me (kendi belirlediğiniz alan adı) alan adı ile çalışan bir WordPress sitesi kurma sürecimi adım adım paylaştım. Dockerfile, docker-compose.yaml, bash betikleri ve Nginx konfigürasyon dosyaları ile bir web ortamı oluşturduk. Bu yapılandırma sayesinde, geliştirme ortamınızı kolayca yönetebilir ve gerektiğinde ölçeklendirebilirsiniz.
Umarım bu yazı, benzer projelerde size rehberlik eder.
Bu yazıyı okuduğunuz için teşekkürler! Daha fazla içerik için blogu takip etmeyi unutmayın.