Buyukweb
VDS'de WordPress Kurulumu ve Optimizasyon: Sıfırdan Çalışır Hale

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.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü11 dakika okuma

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

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:

#vds wordpress#wordpress optimizasyon#lemp stack#nginx wordpress#redis önbellek#php opcache#vds hosting

Bu yazıyı paylaş