
VDS'de WordPress Kurulumu ve Optimizasyon: Sıfırdan Çalışır Hale
VDS sunucusunda OpenLiteSpeed, MariaDB 10.6, PHP 8.2 ve Redis ile WordPress kurulumu: stack seçimi, wp-config, LSCache, OPcache tuning ve güvenlik adım adım.
VDS'de WordPress Kurulumu: Sıfırdan Çalışır Hale 1 Saatte
₺250/ay VDS aldınız, root erişiminiz var, karşınızda temiz bir Ubuntu 22.04. WordPress kuracaksınız — ama cPanel yok, Softaculous yok. Her şeyi elle yapacaksınız. Kulağa zor mu geliyor? Doğru sıraya uyarsanız 45-60 dakikada çalışır hale getirirsiniz. Ama önce dürüst bir uyarı:
Bu rehber orta-ileri seviye kullanıcılar için. Sunucu güvenliği, yedekleme, WordPress güncellemeleri — hepsi sizin sorumluluğunuzda. Başlangıç seviyesindeyseniz veya sadece WordPress çalıştırmak istiyorsanız, Buyukweb cPanel hosting paketlerinde Softaculous ile 15 dakikada kurulum yapabilirsiniz. PHP 8.2, LiteSpeed, MariaDB 10.5 ve LSCache eklentisi hazır gelir — tek tıkla. VDS yoluna gitmenizin nedeni "daha fazla kontrol" olmalı; "hosting yetmedi" değil.
VDS'de "daha fazla kontrol" somut anlam taşır: web sunucu seçimi sizde (OpenLiteSpeed/Nginx/Apache), PHP pool sizde, MariaDB tuning sizde. cPanel'de hazır gelen her şey burada sizin işiniz.
VDS'de WP vs cPanel'de WP: Karar Tablosu
| Kriter | VDS (unmanaged) | cPanel Hosting |
|---|---|---|
| Kurulum süresi | 45–90 dk (manuel stack) | 15 dk (Softaculous) |
| Web sunucu | Seçim sizde (OLS/Nginx/Apache) | LiteSpeed 6.x standart |
| PHP sürüm kontrolü | Tam (8.0–8.4 istediğiniz) | PHP 5.2–8.4 seçilebilir |
| MariaDB tuning | Tam (innodb_buffer_pool vs.) | Paylaşımlı, sınırlı |
| Kaynak izolasyonu | Tam (başka site etkilemez) | CloudLinux ile korumalı |
| Güvenlik yönetimi | Siz (firewall, SSH key, güncelleme) | Imunify360, ImunifyAV+ dahil |
| Yedekleme | Siz + Buyukweb Veeam günlük otomatik | Günlük otomatik (harici sunucu) |
| Aylık maliyet başlangıcı | ₺250/ay | ₺350/yıl (Başlangıç paketi) |
| İdeal kullanım | Yüksek trafik, özel config, dev/staging | Blog, küçük-orta site, e-ticaret başlangıcı |
Özet: VDS, kontrol isteyenler için. cPanel, hızlı kurmak ve yönetim yüküyle uğraşmak istemeyenler için.
Web Sunucu Seçimi: OpenLiteSpeed mi, Nginx mi, Apache mi?
VDS'de en sık sorulan soru bu. Kısa cevap: WordPress için OpenLiteSpeed öneririm. Uzun cevap:
| Kriter | OpenLiteSpeed (OLS) | Nginx + PHP-FPM | Apache + mod_php |
|---|---|---|---|
| LSCache eklentisi uyumu | Tam native (LSCache = OLS için yazıldı) | Yok (farklı cache sistemi) | Yok |
| .htaccess desteği | Tam (WordPress permalink çalışır) | Yok (nginx.conf'a yazılır) | Tam |
| Statik dosya hızı | Çok hızlı | Çok hızlı | Orta |
| PHP entegrasyonu | Dahili LSAPI (PHP-FPM'den hızlı) | PHP-FPM (unix socket) | mod_php veya PHP-FPM |
| Web UI yönetim paneli | Var (port 7080, WebAdmin) | Yok | Yok |
| Lisans | Açık kaynak (ücretsiz) | Açık kaynak | Açık kaynak |
| Konfigürasyon zorluğu | Orta (WebAdmin UI + config dosyası) | Orta (conf dosyası) | Düşük (htaccess alışkın olanlar) |
| HTTP/2 + HTTP/3 | Tam destekli | 1.25+ tam | Kısıtlı |
| VDS WP için öneri | Evet (LSCache avantajı) | Evet (Nginx bilginiz varsa) | Hayır (yüksek bellek tüketimi) |
Buyukweb perspektifi: cPanel paketlerinde LiteSpeed + LSCache standart. VDS'de aynı LSCache avantajı için OpenLiteSpeed (açık kaynak sürüm) + LSCache eklentisi kombinasyonu en mantıklı. Nginx tercih ederseniz PHP-FPM ile çalışır, ancak cache invalidasyon nginx-helper ile ek ayar ister. Apache yüksek trafik altında bellek tüketimi nedeniyle VDS WP için önerilmez.
Bu rehberde birincil yol: OpenLiteSpeed + MariaDB 10.6 + PHP 8.2 + Redis.
Adım 1: Sistem Güncelleme ve Temel Paketler
Ubuntu 22.04 (önerilen) üzerinde:
# Paket listesini güncelle, tüm sistemi yükselt
apt update && apt upgrade -y
# Temel araçlar
apt install -y curl wget gnupg2 software-properties-common unzip zip git htop ufw fail2ban
# Zaman dilimini ayarla
timedatectl set-timezone Europe/Istanbul
# Sistemi yeniden başlat (kernel günceldiyse)
reboot
Adım 2: MariaDB 10.6 LTS Kurulumu
WordPress için MariaDB 10.6 LTS: uzun vadeli destek, InnoDB iyileştirmeleri, performans.
# MariaDB 10.6 resmi repo (Ubuntu 22.04)
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | bash -s -- --mariadb-server-version="mariadb-10.6"
apt update && apt install -y mariadb-server mariadb-client
systemctl enable --now mariadb
mysql_secure_installation # root şifresi koy, anonymous sil, remote root kapat
WordPress için veritabanı ve kullanıcı:
mysql -u root -p
CREATE DATABASE wp_site CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'Guclu_Sifre_2024!';
GRANT ALL PRIVILEGES ON wp_site.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Adım 3: PHP 8.2 ve Gerekli Eklentiler
# Ondrej PPA (Ubuntu'da PHP 8.2 için)
add-apt-repository ppa:ondrej/php -y
apt update
# PHP 8.2 ve WordPress için gerekli tüm uzantılar
apt install -y php8.2-fpm php8.2-mysql php8.2-xml php8.2-curl php8.2-gd php8.2-mbstring php8.2-zip php8.2-intl php8.2-bcmath php8.2-soap php8.2-imagick php8.2-redis php8.2-opcache
# PHP-FPM servisini başlat
systemctl enable --now php8.2-fpm
PHP 8.2 ayarları (/etc/php/8.2/fpm/php.ini):
; Bellek ve upload sınırları
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120
max_input_vars = 3000
; OPcache (WordPress için kritik)
opcache.enable = 1
opcache.memory_consumption = 256
opcache.max_accelerated_files = 20000
opcache.revalidate_freq = 0
opcache.validate_timestamps = 0
; Geliştirme ortamında validate_timestamps=1 yapın
PHP-FPM pool (/etc/php/8.2/fpm/pool.d/www.conf):
[www]
user = www-data
group = www-data
listen = /run/php/php8.2-fpm.sock
listen.owner = www-data
listen.group = www-data
; pm dynamic: trafik dalgalanmasına göre worker sayısı
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 10
pm.max_requests = 500
; Bellek sınırı pool başına
php_admin_value[memory_limit] = 256M
systemctl restart php8.2-fpm
Adım 4: OpenLiteSpeed + LSCache Kurulumu
wget -O - https://repo.litespeed.sh | bash
apt update && apt install -y openlitespeed
apt install -y lsphp82 lsphp82-mysql lsphp82-curl lsphp82-gd lsphp82-mbstring lsphp82-xml lsphp82-zip lsphp82-intl lsphp82-redis lsphp82-opcache
systemctl enable --now lsws
/usr/local/lsws/admin/misc/admpass.sh # Admin şifresi ayarla
OLS WebAdmin (port 7080) → Virtual Hosts → Add: Name wp_site, Document Root /var/www/wp_site/, Rewrite: Enable ✓, Auto Load .htaccess ✓.
Nginx tercih ediyorsanız vhost:
# /etc/nginx/sites-available/wp_site.conf
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/wp_site;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# WordPress güvenlik: xmlrpc + gizli dosyalar
location = /xmlrpc.php { deny all; }
location ~ /. { deny all; }
}
ln -s /etc/nginx/sites-available/wp_site.conf /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Adım 5: WordPress İndirme ve WP-CLI Kurulumu
# WP-CLI kur
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && mv wp-cli.phar /usr/local/bin/wp
# WordPress indir + config + kur
mkdir -p /var/www/wp_site
wp core download --locale=tr_TR --path=/var/www/wp_site
wp config create --dbname=wp_site --dbuser=wp_user --dbpass='Guclu_Sifre_2024!' --dbhost=localhost --locale=tr_TR
wp config shuffle-salts
wp core install --url="https://example.com" --title="Site Adınız" --admin_user="yonetici" --admin_password="Admin_Sifre_2024!" --admin_email="[email protected]"
# Dosya sahipliği
chown -R www-data:www-data /var/www/wp_site
chmod 640 /var/www/wp_site/wp-config.php
wp-config.php'ye ek güvenlik ve performans satırları:
// Redis Object Cache
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_CACHE', true);
// Otomatik güncellemeyi kapat (VDS'de kontrollü güncelleme)
define('WP_AUTO_UPDATE_CORE', false);
define('AUTOMATIC_UPDATER_DISABLED', true);
// Dosya düzenlemeyi kapat (güvenlik)
define('DISALLOW_FILE_EDIT', true);
// Revizyon sayısını sınırla (DB şişmesini önler)
define('WP_POST_REVISIONS', 5);
// Çöp kutusunu 14 günde temizle
define('EMPTY_TRASH_DAYS', 14);
Adım 6: Redis Object Cache Kurulumu
apt install -y redis-server
systemctl enable --now redis-server
redis-cli ping # PONG dönmeli
WordPress Redis Object Cache eklentisi:
wp plugin install redis-cache --activate
wp redis enable
wp redis status # Status: Connected görmeli
Adım 7: Let's Encrypt SSL
# certbot kur
apt install -y certbot
# OpenLiteSpeed için certbot (standalone mod — OLS durdurup alır)
systemctl stop lsws
certbot certonly --standalone -d example.com -d www.example.com
systemctl start lsws
# Nginx kullanıyorsanız:
# apt install -y python3-certbot-nginx
# certbot --nginx -d example.com -d www.example.com
# Otomatik yenileme testi
certbot renew --dry-run
OpenLiteSpeed WebAdmin → Listeners → HTTPS Listener ekle:
- Port: 443, SSL: ✓
- Certificate:
/etc/letsencrypt/live/example.com/fullchain.pem - Private Key:
/etc/letsencrypt/live/example.com/privkey.pem
Adım 8: LSCache Eklentisi Aktivasyonu (OpenLiteSpeed)
# LSCache eklentisini WP-CLI ile kur ve etkinleştir
wp plugin install litespeed-cache --activate
# Temel LSCache ayarları (WP-CLI üzerinden)
wp litespeed-option set cache-browser 1
wp litespeed-option set cache-object 1
wp litespeed-option set optm-css_min 1
wp litespeed-option set optm-js_min 1
WordPress yönetim paneli → LiteSpeed Cache:
- Cache → Enable Cache: ✓
- Cache → Cache Mobile: ✓
- Cache → Exclude:
/wp-admin, /wp-login.php, /cart, /checkout, /my-account - CDN: Cloudflare entegrasyonu varsa CDN URL ekleyin
- Image Optimization → WebP: ✓
Adım 9: MariaDB 10.6 Tuning
/etc/mysql/mariadb.conf.d/50-server.cnf (veya /etc/mysql/my.cnf):
[mysqld]
# InnoDB buffer pool: RAM'in %50-70'i (4 GB RAM için 2-2.5 GB)
innodb_buffer_pool_size = 2G
innodb_buffer_pool_instances = 2
# Log dosyası boyutu (yoğun yazma için artırın)
innodb_log_file_size = 256M
innodb_log_buffer_size = 64M
# Flush davranışı: performans vs veri güvenliği dengesi
# 1 = her commit'te disk flush (en güvenli, biraz yavaş)
# 2 = saniyede bir flush (biraz daha hızlı, küçük risk)
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
# Bağlantı limiti
max_connections = 150
connect_timeout = 10
# Sorgu cache MariaDB 10.6'da varsayılan kapalı — kapalı bırakın
query_cache_size = 0
query_cache_type = 0
# Geçici tablo boyutu (karmaşık sorgu optimizasyonu)
tmp_table_size = 64M
max_heap_table_size = 64M
# Slow query log (optimizasyon için açın)
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
systemctl restart mariadb
# Tuning sonrası bağlantı testi
mysql -u root -p -e "SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%';"
Adım 10: Güvenlik Duvarı + SSH Key + Yedek
Güvenlik Duvarı (UFW veya firewalld)
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 7080/tcp # OLS WebAdmin — kurulum bitti sonra: ufw delete allow 7080/tcp
ufw enable
ufw status verbose
SSH Key Kimlik Doğrulaması
ssh-keygen -t ed25519 -C "vds-wp-key"
ssh-copy-id root@VDS_IP_ADRESI
# /etc/ssh/sshd_config: PasswordAuthentication no, PubkeyAuthentication yes
systemctl restart sshd
UpdraftPlus ile Yedek
wp plugin install updraftplus --activate
UpdraftPlus → Uzak Depolama seçin (Google Drive, S3 uyumlu, SFTP). Buyukweb VDS paketlerinde Veeam tabanlı günlük otomatik yedekleme zaten çalışır; UpdraftPlus buna ek uygulama seviyesi yedektir.
Adım 11: Performans Tuning Özeti
| Parametre | Nerede | Önerilen Değer | Etki |
|---|---|---|---|
innodb_buffer_pool_size |
my.cnf | RAM'in %60'ı | DB sorgu hızı |
pm.max_children |
php-fpm pool | (RAM MB / 50) | PHP eş zamanlılık |
opcache.memory_consumption |
php.ini | 256 | PHP önbellek |
worker_processes |
nginx.conf | auto | Nginx CPU kullanımı |
| PHP workers (OLS) | WebAdmin → External App | vCPU × 4 | OLS PHP kapasitesi |
redis maxmemory |
redis.conf | 256m-512m | Object cache sınırı |
redis maxmemory-policy |
redis.conf | allkeys-lru | Dolunca eski veri sil |
OLS WebAdmin → External App → lsphp82: Max Connections 35, Initial Request Timeout 60, Max Idle Time 300. Nginx kullanıyorsanız worker_processes auto; ve worker_connections 4096; çoğu VDS için yeterli başlangıç.
Monitoring: htop anlık kaynak, Netdata (port 19999) web arayüzlü izleme, MariaDB slow query log (long_query_time = 2), Redis hit rate (redis-cli info stats | grep keyspace_hits). Alarm eşikleri tanımlayın: disk %80 doluluk, RAM %90, PHP worker queue birikimi.
Kurulum Adım Sırası (Hızlı Referans)
Sistem güncelleme → MariaDB 10.6 + DB/user → PHP 8.2 + uzantılar → OpenLiteSpeed + lsphp82 → WordPress indir + WP-CLI ile kur → wp-config.php güvenlik satırları → Redis + Object Cache eklentisi → Let's Encrypt SSL → LSCache aktivasyon → MariaDB my.cnf tuning → UFW + SSH key → UpdraftPlus yedek.
Toplam: ~45-60 dakika.
Sık Sorulan Sorular
VDS'de WordPress kurmak cPanel hosting'den ne kadar farklı?
cPanel hosting'de Softaculous ile WordPress 15 dakikada çalışır; LiteSpeed, MariaDB, PHP, SSL hepsi altyapı tarafından yönetilir. VDS'de ise web sunucu, veritabanı, PHP, güvenlik duvarı, yedekleme, güncelleme — tamamı sizin sorumluluğunuzda. Karşılığında sınırsız config kontrolü ve kaynak izolasyonu elde edersiniz. Tek site, düşük-orta trafik senaryosunda cPanel hosting genellikle daha pratik.
OpenLiteSpeed ile Nginx arasında gerçek performans farkı var mı?
WordPress için OpenLiteSpeed + LSCache tam sayfa cache senaryosunda daha entegre çalışır; WooCommerce sepet/checkout gibi dinamik sayfaları otomatik cache dışı bırakır. Nginx'te benzer sonuç için fastcgi_cache + nginx-helper eklentisi gerekir; daha manuel.
PHP 8.2 yerine 8.3 kullanabilir miyim?
Evet, WordPress 6.4+ PHP 8.3 ile uyumlu. Rehberdeki 8.2 paket adlarını 8.3 ile değiştirin. JIT iyileştirmeleri ile WooCommerce ağırlıklı sitelerde küçük hız artışı olası; üretimde geçiş öncesi staging'de test edin.
MariaDB tuning'de en kritik parametre hangisi?
innodb_buffer_pool_size. Sunucu RAM'inin %50-70'ini bu parametreye verin. Varsayılan değer 128M gelir; 1-2 GB RAM'li VDS'de bile bu çok düşüktür. InnoDB veri ve index cache'ini bellekte tutar; yetersiz ayarlandığında her sorgu disk I/O yapar. 4 GB RAM VDS için 2-2.5 GB ideal başlangıç noktası.
Redis Object Cache eklentisi olarak ne kullanmalıyım?
"Redis Object Cache" (plugin slug: redis-cache) en yaygın ve ücretsiz seçenek; PhpRedis extension ile çalışır. Yüksek trafik (10K+ günlük ziyaret) aşamasında ücretli "Object Cache Pro" daha performanslı alternatif olabilir.
SSL yenileme otomatik çalışacak mı?
Certbot kurulumda systemd timer veya cron ekler; 60 günde bir otomatik yenileme dener. OLS'nin sertifikayı yeniden okuması için cron'a 0 3 * * * systemctl reload lsws ekleyin. certbot renew --dry-run ile test edin.
VDS'de WordPress güvenliği için başka ne yapmalıyım?
wp-login.php IP kısıtlaması, XML-RPC kapatma (xmlrpc.php deny), güçlü admin kullanıcı adı, iki faktörlü doğrulama (WP 2FA eklentisi), düzenli wp core verify-checksums, fail2ban ve unattended-upgrades ile OS güvenlik güncellemeleri.
İlgili Büyükweb Hizmetleri
- VDS Sunucu (E5-V4) — KVM sanallaştırma, NVMe SSD, Ubuntu 22.04, anında teslim, ₺250/ay'dan
- cPanel Web Hosting — LiteSpeed + LSCache standart, Softaculous 1-tık WordPress, ₺350/yıldan
- WordPress Hosting — WordPress için optimize, hazır kurulum
- E-Ticaret VDS — WooCommerce + yüksek trafik senaryoları için
Sorularınız için 0850 302 60 70 numaralı destek hattımıza veya iletişim sayfamıza yazabilirsiniz.
VDS & VPS Rehberi İlgili Hizmetlerimiz
Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin
Etiketler:


