1️⃣ Cài Elasticsearch trên Ubuntu (VPS – Nginx, PHP 7.4)

Bước 1: Cài Java (ES 8 đã bundle Java, nhưng nên có OpenJDK)

sudo apt update
sudo apt install openjdk-17-jdk -y
java -version

Bước 2: Thêm repository Elasticsearch

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpgecho "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.listsudo apt update

Bước 3: Cài đặt

sudo apt install elasticsearch -y

Bật và chạy

sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch

Kiểm tra

curl -u elastic http://localhost:9200

Lần đầu sẽ yêu cầu password (xem trong file):

sudo cat /etc/elasticsearch/elasticsearch.yml

Hoặc reset password:

sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

2️⃣ Cài trên Windows (máy bạn dùng XAMPP)

Bước 1:

Tải từ:
https://www.elastic.co/downloads/elasticsearch

Giải nén vào:

D:\elasticsearch

Bước 2: Chạy

Mở CMD:

cd D:\elasticsearch\bin
elasticsearch.bat

Đợi khoảng 30–60 giây.


Bước 3: Test

Mở trình duyệt:

http://localhost:9200

Nếu ra JSON là OK.


3️⃣ Cách đơn giản nhất (Khuyên dùng cho dev): Docker

Nếu bạn dùng WSL hoặc VPS Ubuntu:

docker run -d \
  --name elasticsearch \
  -p 9200:9200 \
  -e "discovery.type=single-node" \
  -e "xpack.security.enabled=false" \
  docker.elastic.co/elasticsearch/elasticsearch:8.12.0

Test:

curl http://localhost:9200

4️⃣ Cấu hình cho production

Mở file:

/etc/elasticsearch/elasticsearch.yml

Chỉnh:

network.host: 0.0.0.0
http.port: 9200

Sau đó restart:

sudo systemctl restart elasticsearch

⚠ Nếu mở ra internet nhớ cấu hình firewall hoặc reverse proxy (Nginx + auth).


5️⃣ Kết nối từ PHP (WordPress / CI3)

Cài thư viện:

composer require elasticsearch/elasticsearch

Ví dụ PHP:

require 'vendor/autoload.php';$client = \Elasticsearch\ClientBuilder::create()
    ->setHosts(['localhost:9200'])
    ->build();$response = $client->info();
print_r($response);

6️⃣ Cấu hình RAM (quan trọng)

Mở:

/etc/elasticsearch/jvm.options

Sửa:

-Xms1g
-Xmx1g

👉 Nếu VPS 2GB RAM thì để 512m–1g thôi.


⚡ Gợi ý cho bạn (dev + nhiều database + WordPress)

Vì bạn:

  • Dùng WordPress
  • Có nhiều database
  • Quan tâm tăng tốc search
  • Muốn tối ưu SEO & thời gian onsite

👉 Nên:

  • Dùng Elasticsearch + plugin custom
  • Index riêng từng domain
  • Hoặc làm search server riêng