cPanel Elastic Search Kurulumu
Aşağıda, CloudLinux tabanlı, cPanel/WHM yönetimli ve LiteSpeed, Imunify360 kurulu bir sunucuda XenForo için ElasticSearch kurulumunu ve XenForo ile entegrasyonunu anlatan yaklaşık 1200 kelimelik, detaylı, adım adım bir rehber bulacaksınız. Bu rehber, SSH üzerinden root erişimi gerektiren işlemleri açıklar. Adımları takip ederek, XenForo forumunuzda gelişmiş arama yeteneklerine sahip olmak için ElasticSearch’ü konfigüre edebilir ve XenForo Enhanced Search (XES) eklentisini etkinleştirebilirsiniz.
Giriş
XenForo, PHP tabanlı, kullanıcı dostu ve yüksek performanslı bir forum yazılımıdır. Varsayılan arama özelliği MySQL sorgularına dayanırken, orta ve büyük ölçekli forumlarda arama performansını artırmak için Elasticsearch tabanlı XenForo Enhanced Search (XES) önerilir. ElasticSearch, Java tabanlı, ölçeklenebilir ve tam metin arama sağlayan bir arama motorudur. Özellikle büyük veri setlerinde esnek, hızlı ve doğru sonuçlar sunar.
Bu rehberde anlatılan ortamda aşağıdaki varsayımlar yapılmıştır:
- Sunucu Yapısı:
- İşletim Sistemi: CloudLinux veya AlmaLinux (CentOS türevi)
- Kontrol Paneli: cPanel/WHM
- Web Sunucusu: LiteSpeed
- Güvenlik: Imunify360 kurulu
- Forum Yazılımı: XenForo son sürüm
- Erişim: SSH üzerinden root erişiminiz mevcut
- Hedef: XenForo için Elasticsearch yüklemek, yapılandırmak ve XenForo Enhanced Search eklentisini ayarlamak.
Not: Bu rehberi uygulamadan önce, sunucunuzun yedeklerini alın. Ayrıca, Java (OpenJDK) ve Elasticsearch sürümlerini resmi dokümantasyonları kontrol ederek güncel tutun.
Bölüm 1: Elasticsearch Nedir ve Neden Kullanılmalı?
Elasticsearch, verileri indeksleyerek arama yapan dağıtık bir arama ve analitik motorudur. MySQL tabanlı standart aramalar özellikle büyük forumlarda performans sorunları yaratırken, Elasticsearch büyük veri setlerinde hızlı sonuç döndürür. Özellikle binlerce, hatta milyonlarca mesajı olan bir XenForo forumunuz varsa, kullanıcı deneyimi açısından Elasticsearch kullanmak büyük fayda sağlar.
XenForo için geliştirilmiş resmi Enhanced Search eklentisi, Elasticsearch ile entegre olarak gelişmiş arama özelliklerini (relevans skoru, filtreleme, hızlı sonuçlar) sunar.
Bölüm 2: Elasticsearch Gereksinimleri
Elasticsearch, Java tabanlı bir uygulamadır. Bu nedenle sisteminizde bir Java Runtime (OpenJDK) yüklü olması gerekir. Ayrıca Elasticsearch, 9200 numaralı portu kullanır. Güvenlik duvarı (CSF veya benzeri) ayarlarında bu porta izin vermeniz gerekebilir. Aynı zamanda, sistem kaynakları konusunda dikkatli olunmalıdır. Elasticsearch bellek yoğun bir uygulamadır ve yeterli RAM tahsis edilmelidir.
Temel olarak ihtiyacınız olanlar:
- Java (OpenJDK 11 veya 17): Elasticsearch belirli Java sürümleriyle çalışır. Genellikle Elasticsearch sürüm dokümantasyonunda önerilen Java sürümünü yüklemeniz önerilir.
- Yeterli RAM ve CPU: En az 2 GB RAM, ancak daha büyük forumlar için 4 GB veya üzeri tavsiye edilir.
- SSH Root Erişimi: Paketleri yüklemek, servisleri başlatmak/durdurmak için.
Bölüm 3: SSH ile Sunucuya Bağlanma
- Sunucuya Bağlanma:
Bilgisayarınızdan bir terminal (macOS/Linux) veya PuTTY (Windows) aracılığıyla SSH bağlantısı sağlayın:
ssh root@sunucu_ip_adresiniz
Parolanızı girdikten sonra root olarak bağlanacaksınız.
Bölüm 4: Java Yükleme
Elasticsearch, Java gerektirir. Mevcut sistemde Java olup olmadığını kontrol edin:
java -version
Eğer Java yüklü değilse veya güncel değilse OpenJDK yükleyin. AlmaLinux/CloudLinux tabanlı sistemlerde genellikle yum
veya dnf
kullanılır:
dnf install java-11-openjdk -y
Komut tamamlandığında tekrar java -version
ile sürümü doğrulayın. Elasticsearch’ün resmi dokümantasyonu, hangi sürüm Java ile uyumlu olduğunu belirtir. Elasticsearch 7.x sürümü için genelde OpenJDK 11 uygundur.
Bölüm 5: Elasticsearch Deposu Ekleme ve Kurulum
Elasticsearch paketlerini resmi Elastic deposundan çekebilirsiniz.
- Elastic GPG Anahtarını Ekleme:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
- Elastic Repository Dosyasını Oluşturma:
nano /etc/yum.repos.d/elasticsearch.repo
Yazın ve aşağıdaki kodları ekleyin:
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Burada 7.x
ifadesi Elasticsearch 7 serisini temsil eder. XenForo Enhanced Search’in desteklediği Elasticsearch sürümünü XenForo dokümantasyonundan teyit edebilirsiniz. Genellikle XenForo Enhanced Search, Elasticsearch 7.x serisiyle uyumlu çalışır. (XenForo 2.2 ve üstü için Elasticsearch 7.x önerilir.)
- Elasticsearch Kurulumu:
dnf install elasticsearch -y
Bu işlem, Elasticsearch’ü /usr/share/elasticsearch dizinine yükleyecektir.
Bölüm 6: Elasticsearch Yapılandırması
Elasticsearch’ün ana yapılandırma dosyası /etc/elasticsearch/elasticsearch.yml
dosyasıdır. Burada temel ayarları yapacağız:
- Yapılandırma Dosyasını Düzenleme:
nano /etc/elasticsearch/elasticsearch.yml
Açılan dosyada aşağıdaki ayarları kontrol edin veya ekleyin:
cluster.name: xenforo-cluster
node.name: node-1
network.host: 127.0.0.1
http.port: 9200
discovery.type: single-node
Açıklama:
network.host
değerini127.0.0.1
yaparak Elasticsearch’ün dışarıya açılmasını engellersiniz. Bu sayede yalnızca sunucu içinden (XenForo’nun bulunduğu aynı sunucudan) erişim sağlanır. Güvenlik açısından önerilir.discovery.type: single-node
tek düğümlü bir kurulum olduğunu Elasticsearch’e bildirir.
- Bellek Ayarı (JVM Options):
Elasticsearch,/etc/elasticsearch/jvm.options
dosyasında Java heap bellek ayarlarını tutar. Varsayılan olarak genelde 1-2 GB bellek atar. Forumunuz büyükse burayı artırabilirsiniz. Örneğin 2 GB atamak için:
nano /etc/elasticsearch/jvm.options
-Xms2g
ve -Xmx2g
satırlarını bulun. Değerleri mevcut değilse ekleyin veya güncelleyin:
-Xms2g
-Xmx2g
Bu sayede Elasticsearch 2 GB heap belleğe sahip olacak.
- Servisi Etkinleştirme ve Başlatma:
systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch
- Durumu Kontrol Etme:
systemctl status elasticsearch
Çıkışta “active (running)” görüyorsanız Elasticsearch başarıyla çalışıyor demektir.
- Test Etme:
curl http://127.0.0.1:9200
Yanıt olarak Elasticsearch’ün sürüm bilgilerini içeren JSON döndürmelidir.
Bölüm 7: Güvenlik ve Firewall Ayarları
Sunucunuzda CSF veya benzeri bir firewall varsa, Elasticsearch’ün 9200 portuna dahili erişime izin vermelisiniz. Ancak network.host
ile 127.0.0.1’e bağladığınız için dışarıdan erişim zaten engellenmiştir. Bu genellikle yeterli bir güvenlik önlemidir. Sunucuda Imunify360 varsa, outbound/inbound kurallarını kontrol edebilirsiniz. Ancak sadece local erişim olduğundan ek bir düzenleme gerekmez.
Bölüm 8: XenForo Enhanced Search Eklentisinin Kurulumu
- Lisans ve Dosyaları İndirme:
XenForo Enhanced Search, XenForo’nun resmi sitesinden lisanslı olarak temin edilebilir. XenForo hesabınıza giriş yapın, lisanslı eklentiyi indirin. İndirdiğiniz arşivi açın ve içindekiupload
klasörünü XenForo kurulumunuzun kök dizinine atın. - Dosyaları Yükleme:
FTP veya SSH aracılığıyla XenForo’nun kurulu olduğu dizine eklentinin dosyalarını yükleyin.
Örneğin, XenForo/home/kullanici/public_html/forum
dizinine kuruluysa,upload
klasöründeki tüm dosyaları bu dizine aktarın. Dosyalar otomatik olaraksrc/addons/XFES
gibi bir yapıya yerleşir. - Eklentiyi Etkinleştirme:
XenForo yönetim panelinize gidin:https://forum-siteniz.com/admin.php
Giriş yapın, ardındanEklentiler
(Add-ons) bölümündenXenForo Enhanced Search
eklentisini bulun ve yükleyin. Kurulum sihirbazı size gerekli adımları soracaktır. - Elasticsearch Bağlantı Ayarları:
Eklenti yüklendikten sonra XenForo yönetim panelinizdeAyarlar > Arama
veyaGelişmiş Arama
ayarlarına gidin. Burada Elasticsearch sunucunuzun ayarlarını gireceksiniz:
- Elasticsearch Host:
127.0.0.1
- Elasticsearch Port:
9200
- Gerekirse özel bir endpoint veya username/password (Elasticsearch X-Pack gibi güvenlik paketleri kullanmıyorsanız genelde gerek yoktur). Ayarları kaydedin.
- Dizin Oluşturma:
XenForo Enhanced Search genellikle forum verilerinizi Elasticsearch’te bir indeks haline getirir. Yönetim panelindeAyarlar > Enhanced Search
sayfasında birRebuild Index
(Dizini Yeniden Oluştur) işlemi yapmanız gerekir. Bu işlem, mevcut tüm konu ve mesajlarınızı Elasticsearch indeksine aktarır. Büyük forumlarda bu işlem zaman alabilir. - Test Etme:
Dizini yeniden oluşturma tamamlandığında forumunuzda bir arama yapın. Arama sonuçlarının hızlandığını, daha alakalı sonuçlar verdiğini ve performansın arttığını göreceksiniz.
Bölüm 9: Bakım ve Güncellemeler
- Elasticsearch Güncellemeleri:
Zamanla Elasticsearch’ü güncellemek isteyebilirsiniz. Bunudnf update
komutu ile yapabilir, ancak büyük sürüm geçişlerinde XenForo’nun sürüm desteğini kontrol edin. - Heap Belleği Ayarları:
Forum büyüdükçe Elasticsearch bellek tüketimi artabilir. Gerekirsejvm.options
dosyasından bellek miktarını artırın. - Düzenli İndeks Yenileme:
XenForo yeni mesajlar eklendikçe otomatik olarak indeksler, ancak bazen bakım amacıylaRebuild Search Index
yapabilirsiniz. - Güvenlik Güncellemeleri:
Imunify360, sunucunuzun güvenliğini sağlar. Elasticsearch’ün harici erişime kapalı olması büyük bir avantajdır. Gerekirse X-Pack Security gibi Elasticsearch güvenlik eklentilerini araştırabilirsiniz.
Bölüm 10: Olası Sorunlar ve Çözümler
- Elasticsearch Çalışmıyor Hataları:
systemctl status elasticsearch
ile durumu kontrol edin. Log’ları/var/log/elasticsearch/
dizininde inceleyin. Genellikle bellek yetersizliği, Java sürüm uyuşmazlıkları veya yapılandırma hataları en yaygın sorunlardır. - XenForo Eklentisi Bağlantı Sorunları:
Firewall ayarlarını venetwork.host
değerini kontrol edin.
Yanlış port ya da host değeri girilirse XenForo Elasticsearch’e ulaşamaz. - Performans Sorunları:
Bellek miktarını artırın veya sunucu kaynaklarını yükseltin.
Ayrıca LiteSpeed ayarlarını gözden geçirip forum önbellekleme stratejilerini geliştirebilirsiniz.
Sonuç
Bu rehberde, CloudLinux/AlmaLinux, cPanel, LiteSpeed ve Imunify360 yüklü bir sunucuda XenForo için Elasticsearch kurulumunu adım adım ele aldık. Önce Java ve Elasticsearch’ü kurduk, yapılandırdık, ardından XenForo Enhanced Search eklentisini entegrasyonunu gerçekleştirdik. Bu sayede forumunuz için gelişmiş, hızlı ve ölçeklenebilir bir arama deneyimi sunabilirsiniz.
Artık XenForo kullanıcılarınız, forumunuzda daha doğru ve hızlı arama sonuçları alacak, büyük veri kümelerinde bile performanstan ödün vermeden forumunuzu kullanmaya devam edebilecekler. Bu kurulum, forumunuzun büyümesine paralel olarak ölçeklendirilebilir bir arama alt yapısı sağlar.
Sorun yaşarsanız:
İzinleri verin:
sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch
sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch
sudo chmod -R 750 /var/lib/elasticsearch
sudo chmod -R 750 /usr/share/elasticsearch