1. wp‑content dizini nasıl kalıcı hale getirir?
docker‑compose.yml içinde dosya sistemi kalıcılığı için volume eklenir:
YAML:
services:
wordpress:
image: wordpress:latest
volumes:
- ./wp-content:/var/www/html/wp-content
Bu sayede hostdaki
wp‑content klasörüne yapılan değişiklikler container içinde kalır.2. PHP‑FPM “permission denied” hatasını çözmek
Container başlamadan önce dosya izinlerini ayarlamak gerekir.
Bash:
docker exec -u root wordpress \
chown -R www-data:www-data /var/www/html/wp-content
docker exec -u root wordpress \
find /var/www/html/wp-content -type d -exec chmod 755 {} \;
docker exec -u root wordpress \
find /var/www/html/wp-content -type f -exec chmod 644 {} \;
www-data kullanıcı adı WordPress’te kullanılan standart sürüktür; eğer farklı ise ona göre değiştir.3. Redis ile WordPress önbelleği kurmak
Redis’e bağlanmak için WordPress’eredis servis adı eklenir:
YAML:
services:
redis:
image: redis:alpine
wordpress:
image: wordpress:latest
depends_on:
- redis
environment:
WORDPRESS_REDIS_HOST: redis
WORDPRESS_REDIS_PORT: 6379
Ayrıca
wp‑redis eklentisini aktif ederseniz, PHP yapılandırmanızda redis uzantısı yüklü olmalıdır.4. Varnish kullanarak HTTP önbelleği
Basit bir Varnish konteyneri aşağıdaki gibi yapılandırılabilir:
YAML:
services:
varnish:
image: varnish:stable
ports:
- "80:80"
volumes:
- ./varnish/default.vcl:/etc/varnish/default.vcl
wordpress:
image: wordpress:latest
environment:
VIRTUAL_HOST: example.com
default.vcl dosyasında backend default { .host = "wordpress"; .port = "80"; } satırları bulunur.5. PHP‑FPM’de opcache ile önbellek ayarlanması
php.ini içinde aşağıdaki satırların aktif olduğundan emin olun:
INI:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
Bu ayarlar, fonksiyonel önbellekleme için yeterlidir.
Her adımda, önce yedekleme yapıp test ortamında çalıştırmayı öneririm.