Docker yardımı ile Synology NAS’a wordpress kuracağız, üstelik redis cache ile hızına güç katacağız.
Önce Docker dizini altında wordpress adında bir dizin açıyor ve içerisine db_data, redis_data ve html dizinlerini oluşturuyoruz. Ana dizine uploads.ini adında bir dosya oluşturup kopyalıyoruz.

file_uploads = On
memory_limit = 512M
upload_max_filesize = 256M
post_max_size = 280M ; upload_max_filesize'dan biraz büyük
max_execution_time = 300
max_input_time = 300
max_input_vars = 3000 ; Karmaşık temalar ve eklentiler için eklendBu dosya sayesinde php.ini ayarlarını basitçe yapmış olacağız. devam edelim ve Container Manager açıp yeni bir proje oluşturalım. Ben projenin adına wordpress yazdım.

Örnek docker compose dosyası aşağıda kendize göre düzenleyip kaynak bölümüne yapıştırıp ileri ye tıklayıp bitirin
version: '3.8'
services:
db:
image: mariadb:latest
container_name: wp_db
restart: unless-stopped
command: --default-authentication-plugin=mysql_native_password
volumes:
- /volume1/docker/wordpress/db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpresspass
networks:
- wp-net
redis:
image: redis:latest
container_name: wp_redis
restart: unless-stopped
volumes:
- /volume1/docker/wordpress/redis_data:/data
networks:
- wp-net
wordpress:
image: wordpress:latest
container_name: wp_app
restart: unless-stopped
depends_on:
- db
- redis
ports:
# Synology IP'nizden 8095 portu ile erişirsiniz.
- "8095:80"
volumes:
# WordPress dosyalarınız (temalar, eklentiler) bu klasörde olacak
- /volume1/docker/wordpress/html:/var/www/html
# Özel PHP ayarlarımızı içeri bağlıyoruz
- /volume1/docker/wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
environment:
WORDPRESS_DB_HOST: db:3306 # 'db' servis adını kullanıyoruz
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpresspass
WORDPRESS_DB_NAME: wordpress
WORDPRESS_TABLE_PREFIX: wp_
# Redis bağlantısı için
WORDPRESS_REDIS_HOST: redis
WORDPRESS_REDIS_PORT: 6379
# --- REST API Sorunu ÇÖZÜMÜ ---
# !!! Buraya Synology NAS'ınızın IP'sini ve portunu YAZMALISINIZ !!!
WORDPRESS_SITEURL: http://192.168.1.53:8095
WORDPRESS_HOME: http://w.kpl.pw
networks:
- wp-net
phpmyadmin:
image: phpmyadmin:latest
container_name: wp_pma
restart: unless-stopped
depends_on:
- db
ports:
# PHPMyAdmin'e 8096 portu ile erişirsiniz
- "8096:80"
environment:
PMA_HOST: db # 'db' servis adını kullanıyoruz
PMA_PORT: 3306
MYSQL_ROOT_PASSWORD: rootpass
networks:
- wp-net
# Servislerin birbirleriyle konuşacağı özel ağı tanımlıyoruz
networks:
wp-net:
driver: bridge
# Verilerin saklanacağı klasörleri tanımlıyoruz
volumes:
db_data:
redis_data:
wordpressşimdi redis ayarlarını yapalım. html dizini içerisinde wp-config.php dosyasını bulun ve aşağıdaki kodları /* That’s all, stop editing! Happy publishing. satırından önceye ekleyin.ekledikten sonra dosyayı kaydetmeyi unutmayın.
define( 'WP_REDIS_HOST', 'redis' );
define( 'WP_REDIS_PORT', 6379 );
kullandığınız web tarayıcısına http://NASIP:8095 adresini girerek wordpress kurulumunu başlatabilirsiniz.


şimdi herşey tamam ve belirlediğimiz kullanıcı adı ve şifre ile giriş yapalım

Redis eklentisini yüklemek için eklentilere girin, arama bölümüne Redis yazıp eklentiyi görene kadar bekleyin ardından eklentiyi kurup etkinleştirin.

etkinleştirdikten sonra Ayarların altında Redis e girin. herşey tamam sadece enable yaparak Redisimiz aktif olacak

sorun yok ve redis çalışıyor, isterseniz wp super cache eklentisinide kurup sorun yaşamadan kullanabilirsiniz. şimdi site sağlığına bakalım.

Ve herşey yolunda bir domain atayıp SSL verebilir ve modemden port açıp rahat bir şekilde kullanabilirsiniz.

Sıkça Sorulan Sorular
Synology NAS’ta Docker ile WordPress ve Redis Kurulumu Sıkça Sorulan Sorular
Bu rehberin Synology NAS üzerinde WordPress kurulumu için temel amacı nedir?
Bu rehber, Synology NAS cihazınızda Docker kullanarak hızlı ve performanslı bir WordPress sitesi kurmayı amaçlamaktadır. Kurulum, Redis cache entegrasyonu ile sitenizin hızını önemli ölçüde artırmayı, MariaDB veritabanı kullanmayı ve phpMyAdmin ile veritabanı yönetimini kolaylaştırmayı hedefler.
Hız ve performans için Redis cache neden kullanılıyor?
Redis, WordPress sitenizin veritabanı sorgularını ve sık erişilen içerikleri önbelleğe alarak sitenin yüklenme hızını ve genel performansını önemli ölçüde artırır. Bu rehberde Redis, Docker konteyneri olarak entegre edilmiştir ve WordPress ile sorunsuz bir şekilde çalışacak şekilde yapılandırılmıştır.
`uploads.ini` dosyası ne işe yarar ve içeriği nedir?
`uploads.ini` dosyası, WordPress uygulamanızın PHP ayarlarını kolayca yapılandırmanızı sağlar. Özellikle dosya yükleme limitleri (`upload_max_filesize`, `post_max_size`), bellek kullanımı (`memory_limit`), maksimum yürütme ve girdi süreleri (`max_execution_time`, `max_input_time`) gibi kritik PHP direktiflerini içerir. Bu sayede büyük dosyaların yüklenmesi veya karmaşık işlemlerin sorunsuz çalışması sağlanır.
Docker Compose dosyasında hangi bilgileri kendi Synology NAS’ıma göre düzenlemeliyim?
Docker Compose dosyasında kendi ortamınıza özel olarak düzenlemeniz gereken başlıca alanlar şunlardır:
- Veritabanı Kimlik Bilgileri: `db` servisi altındaki `MYSQL_ROOT_PASSWORD`, `MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD` değerleri.
- WordPress Site URL’si: `wordpress` servisi altındaki `WORDPRESS_SITEURL` ve `WORDPRESS_HOME` değişkenleri altına Synology NAS’ınızın IP adresini ve WordPress için belirlediğiniz portu (örneğin, `http://192.168.1.53:8095` gibi) yazmalısınız. Bu, özellikle REST API sorunlarının önüne geçmek için önemlidir.
- Volume Yolları: `/volume1/docker/wordpress/…` şeklindeki volume yollarını kendi Synology NAS’ınızdaki Docker dizininize ve klasör yapınıza göre ayarlamanız gerekebilir.
Kurulum tamamlandıktan sonra WordPress ve phpMyAdmin’e nasıl erişebilirim?
Kurulumu başarıyla tamamladıktan sonra, WordPress sitenize Synology NAS’ınızın IP adresi ve Docker Compose dosyasında belirlenen port üzerinden erişebilirsiniz. Örnek olarak, `http://[Synology_IP_Adresi]:8095` adresinden WordPress’e ulaşabilirsiniz. phpMyAdmin ise `http://[Synology_IP_Adresi]:8096` portu üzerinden erişilebilir ve veritabanı yönetiminiz için kullanılabilir.