WordPress Yerel Geliştirme Ortamı – Docker ile Adım Adım Rehber
WordPress üzerinde tema veya eklenti geliştirmek, projeleri yerelde test etmek ve güvenli bir çalışma ortamı oluşturmak için Docker harika bir çözümdür. Docker sayesinde tüm servisler (WordPress, veritabanı, phpMyAdmin, WP-CLI) tek bir komutla ayağa kalkar, proje dosyaları ise bilgisayarındaki klasörle senkronize çalışır. Böylece çekirdek dosyalara dokunmadan sadece wp-content
altında geliştirme yapabilirsin.
Bu rehberde adım adım bir yerel WordPress geliştirme ortamı kuracağız. Her adımda hem neler yaptığımızı açıklayarak gerekli komutları paylaşacağız.


📦 Gereksinimler
WordPress geliştirme ortamı oluşturmaya başlamadan önce aşağıdakilerin bilgisayarınızda kurulu olması gerekiyor:
- Docker Desktop (Mac/Windows) veya Docker Engine + Docker Compose (Linux)
- VS Code (veya tercih ettiğin başka bir editör)
- Terminal (Mac’te zsh/bash, Windows’ta PowerShell/WSL)
Opsiyonel ama faydalı:
- VS Code eklentileri: PHP Intelephense, PHP Debug (Xdebug için), Docker
- Git (sürüm kontrolü için)
1. 🚀 Proje klasörünü oluşturma
Öncelikle çalışacağımız proje dosyalarını düzenli tutabilmek için ayrı bir klasör açıyoruz. Böylece tüm Docker ayar dosyaları ve WordPress içerikleri tek bir yerde oluyor.
mkdir fiyatbulucu-dev && cd fiyatbulucu-dev
2. ⚙️ Ortam değişkenleri (.env)
Her projede port numaraları, veritabanı kullanıcı adı/parolası gibi bilgiler değişebilir. Bunları docker-compose.yml
içine yazmak yerine .env
dosyasında toplamak, hem güvenlik hem de taşınabilirlik açısından çok daha iyi bir pratik.
WP_PORT=8080
PMA_PORT=8081
DB_NAME=wordpress
DB_USER=wpuser
DB_PASSWORD=secret
DB_ROOT_PASSWORD=rootsecret
WP_TABLE_PREFIX=wp_
3. 📝 Docker Compose yapılandırması (docker-compose.yml)
Docker Compose dosyası, birden fazla servisi (WordPress, MariaDB, phpMyAdmin, WP-CLI) aynı ağda çalıştırmamıza olanak tanır. Böylece tek komutla tüm ortamımız ayağa kalkar. Burada ayrıca wp-content
klasörünü host makineye bağladık, yani temaları ve eklentileri kendi bilgisayarında geliştirebiliyorsun.
services:
db:
image: mariadb:11
...
wordpress:
image: wordpress:6.6-php8.2-apache
...
phpmyadmin:
image: phpmyadmin:5-apache
...
wpcli:
image: wordpress:cli-php8.2
...
volumes:
db_data:
wp_data:
4. ▶️ Servisleri başlatma
Artık elimizde Docker Compose tanımı olduğuna göre tek bir komutla tüm servisleri çalıştırabiliyoruz. Bu komut WordPress, veritabanı ve phpMyAdmin’i birlikte başlatır.
docker compose up -d
5. 🔍 Çalışma durumunu kontrol etme
Her şeyin düzgün çalıştığını teyit etmek için çalışan container’ları listeliyoruz. Böylece WordPress ve diğer servisler gerçekten aktif mi görebiliyoruz.
docker ps

6. 🌐 Tarayıcıdan erişim
Servisler ayağa kalktıktan sonra WordPress’e ve phpMyAdmin’e tarayıcı üzerinden erişebiliriz. İlk seferde WordPress bize kurulum sihirbazını gösterir, burada site adını, admin kullanıcı adını ve şifresini belirleriz.
- WordPress: http://localhost:8080
- phpMyAdmin: http://localhost:8081
7. 📂 Geliştirme klasörleri
WordPress çekirdeği Docker volume içinde duruyor, ama wp-content
klasörünü host makineye bağladık. Bu sayede VS Code üzerinde tema ve eklenti geliştirmelerini kolayca yapabiliyoruz. Böylece core dosyalara dokunmadan sadece ihtiyacımız olan yerde çalışıyoruz.
8. 🛠️ WP-CLI ile yönetim
WP-CLI, WordPress’i komut satırından yönetmeyi sağlar. Örneğin tema/eklenti kurmak, güncelleme yapmak veya versiyon kontrolünü görmek için kullanabiliriz. Özellikle otomasyonlarda ve hızlı testlerde çok faydalıdır.
docker compose run --rm wpcli wp core version
docker compose run --rm wpcli wp plugin install query-monitor --activate
docker compose run --rm wpcli wp theme install twentytwentyfour --activate
9. 🧹 Servisleri durdurma & sıfırlama
İşimiz bittiğinde servisleri kapatabilir veya veritabanı dahil tüm verileri sıfırlayabiliriz. Bu sayede temiz bir kurulum yapmak istediğimizde kolayca başa dönebiliriz.
docker compose down # sadece container’ları kapatır
docker compose down -v # container + volume + veritabanı silinir
10. 🐞 Logları izleme
Bir şeyler yanlış gittiğinde en iyi yol loglara bakmaktır. Örneğin WordPress beyaz ekran veriyorsa PHP hatasını burada görebiliriz.
docker compose logs -f wordpress
docker compose logs -f db
11. 🐘 phpMyAdmin
Veritabanına görsel arayüzle bağlanmak için phpMyAdmin kullanıyoruz. .env
dosyasında tanımladığımız kullanıcı adı ve şifreyle giriş yapabiliyoruz. Bu özellikle tabloları elle incelemek ve SQL sorguları denemek için faydalı.
Adres: http://localhost:8081
- Kullanıcı:
wpuser
- Şifre:
secret
12. 🐛 Debug (Xdebug – opsiyonel)
Geliştirme sırasında hata ayıklama için Xdebug kullanmak isteyebiliriz. Küçük bir ayar dosyasıyla Docker içindeki PHP’ye eklenir ve VS Code ile breakpoint koyarak kodu adım adım inceleyebiliriz.
13. 📧 Mail yakalama (opsiyonel)
WordPress bazen mail gönderir (kayıt, parola resetleme vb.). Geliştirme ortamında gerçek mail göndermek istemediğimiz için MailHog ekleyebiliriz. Böylece gönderilen mailleri sahte bir posta kutusunda yakalayabiliyoruz.
✅ Kullanılan Komutların Özeti
- Proje başlatma:
mkdir fiyatbulucu-dev && cd fiyatbulucu-dev
- Servisleri çalıştırma:
docker compose up -d
- Servisleri kapatma:
docker compose down
- Veritabanı sıfırlama:
docker compose down -v
- Çalışan container’ları görme:
docker ps
- Logları izleme:
docker compose logs -f wordpress
- WP-CLI örnekleri:
docker compose run --rm wpcli wp core version docker compose run --rm wpcli wp plugin install query-monitor --activate docker compose run --rm wpcli wp theme install twentytwentyfour --activate
İlgili Makaleler
Safari uzaktan otomasyona izin ver ayarı nasıl etkinleştirilir?
Web tarayıcıları, modern internet deneyiminin ayrılmaz bir parçası haline gelmiştir. Ancak, sık tekrar eden görevleri…
SQL ‘Delimiter’ nedir, ne için kullanılır?
SQL sorgularda karşılaştığımız ilk gizemlerden biri DELIMITER‘in ne işe yaradığıdır. Bu, özellikle saklı yordamlar, tetikleyiciler…
JavaScript Framework Nedir? Avantajları ve Kullanım Alanları
JavaScript Framework Nedir? JavaScript framework veya eya JavaScript çerçeveleri, web uygulamaları ve yazılım geliştirme sürecini…