OpenLiteSpeed ile WordPress LiteSpeed Cache Kurulumu

WordPress sitenizi gerçek anlamda hızlandırmak istiyorsanız, Apache veya Nginx ile uğraşmak yerine doğrudan LiteSpeed teknolojisiyle başlamak çok daha mantıklı bir tercih. OpenLiteSpeed, ticari LiteSpeed Enterprise’ın ücretsiz ve açık kaynaklı versiyonu olarak hem performans hem de LiteSpeed Cache eklentisiyle olan derin entegrasyonu sayesinde WordPress için neredeyse ideal bir platform sunuyor. Bu yazıda, sıfırdan OpenLiteSpeed kurulumundan başlayarak WordPress’i ayağa kaldırıp LiteSpeed Cache eklentisini production ortamında nasıl optimize edeceğinizi adım adım ele alacağız.

OpenLiteSpeed Neden Bu Kadar Popüler?

Nginx ve Apache yıllardır sektörün standartları olsa da OpenLiteSpeed’in özellikle WordPress ekosistemi için ciddi avantajları var. LSCache (LiteSpeed Cache) protokolü, sunucu tarafında çalışan bir önbellek mekanizması ve WordPress eklentisi arasındaki entegrasyon sayesinde sunucu seviyesinde önbellekleme yapıyor. Yani PHP’ye bile ulaşmadan statik içerik servis ediliyor.

Bunun yanında .htaccess dosyalarını destekliyor olması Apache’den geçiş yapanlar için hayat kurtarıcı. WordPress permalink yapısı, yönlendirmeler ve çoğu eklenti doğrudan çalışıyor. Nginx’te bu yapılandırmaları tek tek elle dönüştürmek gerekiyor, OpenLiteSpeed’de ise bu sorun yok.

Gerçek dünya senaryosuna bakacak olursak: Orta ölçekli bir e-ticaret sitesi, Nginx + Redis önbellek kombinasyonundan OpenLiteSpeed + LiteSpeed Cache’e geçişte sayfa yükleme sürelerinde %40-60 aralığında iyileşme raporluyor. Bu sadece öngörülen teorik bir değer değil, canlı ortamlarda ölçülen sonuçlar.

Sistem Gereksinimleri ve Ön Hazırlık

Bu rehberde Ubuntu 22.04 LTS üzerinde çalışacağız. Minimum gereksinimler:

  • 1 GB RAM (2 GB önerilir)
  • 20 GB disk alanı
  • Ubuntu 20.04 veya 22.04 (Debian 11/12 de destekleniyor)
  • Root veya sudo yetkisi

Başlamadan önce sistemi güncelleyelim ve gerekli temel araçları kuralım:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget unzip software-properties-common

Sistem saatinin doğru ayarlı olduğundan emin olun. SSL sertifikaları ve önbellek TTL hesaplamaları için kritik:

sudo timedatectl set-timezone Europe/Istanbul
timedatectl status

OpenLiteSpeed Kurulumu

OpenLiteSpeed’i resmi repository üzerinden kurmak en sağlıklı yol. Manuel binary kurulumundan kaçının çünkü güncellemeler ve bağımlılıklar açısından sorun çıkarıyor.

# OpenLiteSpeed repository ekleme
wget -O - https://repo.litespeed.sh | sudo bash

# OpenLiteSpeed kurulumu
sudo apt install -y openlitespeed

# PHP 8.2 LiteSpeed modülünü kur (LSPHP)
sudo apt install -y lsphp82 lsphp82-common lsphp82-mysql lsphp82-curl 
  lsphp82-imagick lsphp82-imap lsphp82-intl lsphp82-ldap 
  lsphp82-opcache lsphp82-redis lsphp82-memcached

Burada dikkat edilmesi gereken nokta şu: OpenLiteSpeed kendi PHP modülünü kullanıyor, buna LSPHP deniyor. Sisteminizde zaten kurulu olan php8.2-fpm paketi burada işe yaramaz. LSPHP, LiteSpeed’in kendi SAPI’si üzerinde çalışıyor ve standart PHP-FPM’e kıyasla belirgin performans farkı yaratıyor.

Servisi başlatıp otomatik başlangıca alalım:

sudo systemctl enable lsws
sudo systemctl start lsws
sudo systemctl status lsws

OpenLiteSpeed varsayılan olarak 8088 portundan çalışıyor. Yönetim paneline ise 7080 portundan erişiliyor. Güvenlik duvarını buna göre ayarlayalım:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 7080/tcp
sudo ufw allow 8088/tcp
sudo ufw enable

Admin Paneli Şifresi Ayarlama

OpenLiteSpeed kurulumundan sonra admin paneli şifresini değiştirmeniz gerekiyor:

sudo /usr/local/lsws/admin/misc/admpass.sh

Bu komut size kullanıcı adı ve şifre sorduğunda güçlü bir şifre belirleyin. Ardından https://sunucu-ip:7080 adresinden admin paneline erişebilirsiniz. Tarayıcı SSL uyarısı verebilir, bu normaldir çünkü admin paneli self-signed sertifika kullanıyor.

MariaDB ve WordPress Veritabanı Kurulumu

sudo apt install -y mariadb-server mariadb-client
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation

mysql_secure_installation sırasında:

  • Root şifresi belirleyin
  • Anonim kullanıcıları kaldırın
  • Remote root girişini devre dışı bırakın
  • Test veritabanını silin

WordPress için veritabanı ve kullanıcı oluşturalım:

sudo mysql -u root -p
CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'G3rcekten_Guclu_Sifre_2024!';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

utf8mb4 karakter seti önemli, emoji desteği ve bazı özel karakterlerin düzgün kaydedilmesi için gerekli. Özellikle Türkçe içerik yayınlayan sitelerde bu detayı atlamamak lazım.

Virtual Host Oluşturma

OpenLiteSpeed’de virtual host konfigürasyonu, Apache’deki gibi düz metin dosyaları yerine web arayüzü veya /usr/local/lsws/conf/ dizini altındaki XML dosyaları üzerinden yapılıyor. Web arayüzünü kullanmak daha güvenli, bu yüzden admin panelinden devam edeceğiz.

Önce saite için dizin yapısını hazırlayalım:

sudo mkdir -p /var/www/siteadi.com/{html,logs}
sudo chown -R nobody:nogroup /var/www/siteadi.com/
sudo chmod -R 755 /var/www/siteadi.com/

OpenLiteSpeed’in varsayılan kullanıcısı nobody ve grubu nogroup. WordPress dosyaları bu kullanıcıya ait olmalı, aksi takdirde otomatik güncelleme ve eklenti kurulum izinlerinde sorun yaşarsınız.

Admin Paneli Üzerinden Virtual Host Oluşturma:

  • Sol menüden Virtual Hosts > Add seçin
  • Virtual Host Name: siteadi
  • Virtual Host Root: /var/www/siteadi.com/
  • Config File: /usr/local/lsws/conf/vhosts/siteadi/vhost.conf
  • Enable Scripts/ExtApps: Yes
  • Restrained: Yes olarak bırakın

Listener bölümünden HTTP ve HTTPS dinleyicilerinize bu virtual host’u bağlamayı unutmayın.

WordPress Kurulumu

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
sudo cp -r wordpress/* /var/www/siteadi.com/html/
sudo chown -R nobody:nogroup /var/www/siteadi.com/html/
sudo find /var/www/siteadi.com/html/ -type d -exec chmod 755 {} ;
sudo find /var/www/siteadi.com/html/ -type f -exec chmod 644 {} ;

wp-config.php dosyasını oluşturalım:

cd /var/www/siteadi.com/html/
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php

Dosyada şu alanları düzenleyin:

define( 'DB_NAME', 'wordpress_db' );
define( 'DB_USER', 'wp_user' );
define( 'DB_PASSWORD', 'G3rcekten_Guclu_Sifre_2024!' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );

Salt değerlerini WordPress’in resmi secret-key servisinden alın: https://api.wordpress.org/secret-key/1.1/salt/

.htaccess Yapılandırması

WordPress kurulumu tamamlandıktan sonra permalink yapısının çalışması için .htaccess dosyasını oluşturmanız gerekiyor:

sudo nano /var/www/siteadi.com/html/.htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
sudo chown nobody:nogroup /var/www/siteadi.com/html/.htaccess
sudo chmod 644 /var/www/siteadi.com/html/.htaccess

LiteSpeed Cache Eklentisi Kurulumu ve Yapılandırması

WordPress admin paneline girdikten sonra Eklentiler > Yeni Ekle kısmından LiteSpeed Cache eklentisini aratıp kurun. Bu ücretsiz eklenti, OpenLiteSpeed’in sunucu tarafı önbelleğiyle doğrudan iletişim kuruyor.

Eklentiyi etkinleştirdikten sonra LiteSpeed Cache > Ayarlar kısmına girin.

Temel Cache Ayarları:

  • Enable LiteSpeed Cache: Açık
  • Cache Logged-in Users: Kapalı (giriş yapmış kullanıcılar için önbellek genellikle sorun çıkarır)
  • Cache Commenters: Kapalı
  • Cache REST API: Açık
  • Cache Login Page: Kapalı

TTL Ayarları:

  • Default Public Cache TTL: 604800 (7 gün, statik içerik ağır siteler için ideal)
  • Default Private Cache TTL: 1800
  • Default Front Page TTL: 1800
  • Default Feed TTL: 3600

Purge Ayarları:

Bir yazı güncellendiğinde neyin temizleneceğini belirleyin:

  • Publish/Update Post: İlgili kategori ve etiket sayfalarını da temizlesin
  • Serve Stale: Açık (önbellek yenileme sırasında eski içeriği serve etmeye devam eder, kullanıcı boş sayfa görmez)

CDN ve Image Optimizasyonu

LiteSpeed Cache’in güçlü özelliklerinden biri de görselleri WebP formatına dönüştürmesi. LiteSpeed Cache > Image Optimization bölümünden:

  • WebP Replacement: Açık
  • WebP for Extra srcset: Açık
  • Auto Request Cron: Açık

QUIC.cloud CDN entegrasyonu için ücretsiz API anahtarı alabilirsiniz. Türkiye’deki kullanıcılar için Cloudflare’e alternatif olarak değerlendirilebilir, ancak Cloudflare ile birlikte kullanmak da mümkün.

PHP ve OPcache Optimizasyonu

LSPHP için OPcache ayarlarını düzenleyelim:

sudo nano /usr/local/lsws/lsphp82/etc/php/8.2/litespeed/php.ini

Dosyada şu değerleri bulup güncelleyin veya ekleyin:

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.save_comments=1
opcache.enable_cli=0

; WordPress için upload limiti
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_vars = 3000
memory_limit = 256M

Değişiklikleri uygulamak için OpenLiteSpeed’i graceful restart edin:

sudo systemctl restart lsws

SSL Sertifikası (Let’s Encrypt)

Certbot ile SSL sertifikası alabiliriz. OpenLiteSpeed için özel bir eklenti mevcut:

sudo apt install -y certbot
sudo certbot certonly --webroot -w /var/www/siteadi.com/html 
  -d siteadi.com -d www.siteadi.com 
  --email [email protected] --agree-tos --no-eff-email

Sertifikalar /etc/letsencrypt/live/siteadi.com/ dizinine kaydedilecek. Admin panelinde virtual host SSL listener’ınıza bu sertifika yollarını girin:

  • Private Key File: /etc/letsencrypt/live/siteadi.com/privkey.pem
  • Certificate File: /etc/letsencrypt/live/siteadi.com/fullchain.pem

Otomatik yenileme için cron görevi:

sudo crontab -e
0 3 * * * certbot renew --quiet --post-hook "systemctl restart lsws"

Performans İzleme ve Hata Ayıklama

LiteSpeed Cache, response header’larında önbellek durumunu bildiriyor. Bunu izlemek için:

curl -I https://siteadi.com/ | grep -i x-litespeed

Çıktıda şunları görebilirsiniz:

  • X-LiteSpeed-Cache: hit – Sayfa önbellekten servis edildi
  • X-LiteSpeed-Cache: miss – İlk istek, PHP çalıştı
  • X-LiteSpeed-Cache: no-cache – Bu sayfa önbelleğe alınmıyor

Log dosyalarını takip etmek için:

# OpenLiteSpeed error log
sudo tail -f /usr/local/lsws/logs/error.log

# Virtual host access log
sudo tail -f /var/www/siteadi.com/logs/access.log

# LiteSpeed Cache debug modu (geçici olarak açın)
sudo tail -f /var/www/siteadi.com/html/wp-content/debug.log

Gerçek dünya senaryosunda sık karşılaşılan bir sorun: WooCommerce kurulu sitelerde sepet ve ödeme sayfaları önbelleğe girince kullanıcılar birbirinin sepetini görüyor. Bu durumda LiteSpeed Cache ayarlarından Do Not Cache URIs bölümüne şunları ekleyin:

  • /cart/
  • /checkout/
  • /my-account/
  • /wp-admin/

Güvenlik Sıkılaştırması

OpenLiteSpeed için temel güvenlik adımları:

Admin paneli portunu dışarıya kapatın, sadece kendi IP’nizden erişin:

sudo ufw delete allow 7080/tcp
sudo ufw allow from 203.0.113.50 to any port 7080

WordPress wp-config.php ve .htaccess dosyalarını korumak için virtual host konfigürasyonunuza context ekleyin:

sudo nano /usr/local/lsws/conf/vhosts/siteadi/vhost.conf

Dosyanın içine şu bölümü ekleyin:

context /wp-config.php {
  location                /var/www/siteadi.com/html/wp-config.php
  allowBrowse             0
  accessControl  {
    deny                  ALL
  }
}

fail2ban ile brute-force saldırılarına karşı koruma:

sudo apt install -y fail2ban

sudo nano /etc/fail2ban/filter.d/wordpress.conf
[Definition]
failregex = ^<HOST> .* "POST /wp-login.php
            ^<HOST> .* "POST /xmlrpc.php
ignoreregex =
sudo systemctl restart fail2ban

Sonuç

OpenLiteSpeed ve LiteSpeed Cache kombinasyonu, WordPress için mevcut en performanslı ücretsiz stack’lerden biri. Kurulum süreci ilk bakışta karmaşık görünse de adımları takip ettiğinizde Apache veya Nginx’e kıyasla çok daha az konfigürasyon gerektiriyor ve sonuçlar son derece tatmin edici.

Kritik noktalara bir daha değinelim:

  • LSPHP kullanmak zorunlu, sistem PHP’si çalışmaz
  • Dosya sahipliği mutlaka nobody:nogroup olmalı
  • LiteSpeed Cache’de WooCommerce varsa sepet sayfaları hariç tutulmalı
  • SSL zorunlu, hem güvenlik hem de HTTP/2 desteği için
  • OPcache ve bellek limitlerini sitenizin ihtiyacına göre ayarlayın

Takıldığınız noktalarda OpenLiteSpeed’in resmi belgeleri ve LiteSpeed topluluk forumu oldukça aktif ve çözüm bulmak genellikle zor olmuyor. Sunucu yönetimi her zaman olduğu gibi, doğru araçlar ve doğru yapılandırmayla işin yarısı aslında kendiniliğinden çözülüyor.

Yorum yapın