Hướng dẫn dùng SlickStack để cài WordPress trên VPS

SlickStack là công cụ tập trung chuyên sâu vào việc cài trang WordPress hiệu suất cao trên VPS. Nó có đặc điểm là chỉ cài duy nhất một trang WordPress trên một VPS (các CLI khác, chẳng hạn Webinoly cho phép cài nhiều trang WordPress trên một VPS).

Cài SlickStack không quá khó, vì tất cả chỉ thông qua một dòng lệnh duy nhất, nhưng bạn cần phải chuẩn bị thật kỹ để quá trình cài đặt diễn ra trơn tru.

VPS mà tôi sử dụng để cài đặt là Vultr, một VPS có chất lượng tốt & rất phổ biến tại Việt Nam. Chúng ta sẽ bắt đầu ngay bây giờ.

Yêu cầu hệ thống của SlickSlack: Ubuntu LTS 22.04 hoặc 24.04, RAM tối thiểu 1GB.

Xem thêm: Mấy lưu ý khi sử dụng CLI để cài LEMP & WordPress trên VPS.


A. Liên quan đến SSL

Tên miền của bạn cần phải được cấu hình cẩn thận qua Cloudflare để quá trình tạo SSL diễn ra thành công. Và quá trình này cần phải làm trước khi bắt đầu sử dụng SlickStack.

Các điều cần làm bao gồm:

1. Trỏ 2 bản ghi A

Cho cả dạng không-www & có-www về IP của VPS. Và nhớ bật đám mây vàng cho cả hai (để áp dụng các cài đặt của Cloudflare). Ví dụ:

Nhập 2 bản ghi A, và bật đám mây vàng
Nhập 2 bản ghi A, và bật đám mây vàng

2. Bật DNSSEC

Bật ở Cloudflare trước rồi chuyển sang cài ở nhà cung cấp tên miền của bạn.

Để bật ở Cloudflare, bạn vào DNS > Settings, tìm đến phần DNSSEC và bật nó lên, Cloudflare sẽ cung cấp các bản ghi.

Bạn sẽ cần sao chép thông tin của vài bản ghi trong số đó để nhập vào bên nhà cung cấp tên miền (nhà cung cấp tên miền thường không cần tất cả bản ghi mà Cloudflare cung cấp).

Nhập các bản ghi mà Cloudflare cung cấp vào phần DNSSEC tương ứng bên nhà cung cấp tên miền, nhớ chọn các trường cần nhập chính xác:

Nhập các bản ghi mà Cloudflare cần xác minh cho nhà cung cấp tên miền
Đưa các trường thông tin cần thiết cho nhà cung cấp tên miền

Mất vài phút để quá trình xác thực hoàn thành, khi hoàn thành xong bạn sẽ thấy như hình dưới:

Xác thực DNSSEC thành công
Xác thực thành công

3. Các thiết lập khác cần để đúng

Trang thái SSL trong Cloudflare cần để là Full chứ không được là Flexible.

Để SSL là kiểu Full trên Cloudflare

Phần lớn các phần dưới đây sẽ được tìm thấy dưới tab SSL/TLS. Một số cái bạn sẽ không phải làm gì, vì mặc định nó cũng thế rồi, nhưng hãy cứ check lại cho chắc chắn.

Trong đó enbled nghĩa là bật, còn disabled nghĩa là vô hiệu hóa.

  • Always Use HTTPS = enabled
  • HSTS = disabled (an toàn hơn so với để bật, SlickStack thực hiện điều này)
  • Authenticated Origin Pulls = disabled
  • Minimum TLS Version = 1.1
  • Opportunistic Encryption = enabled
  • TLS 1.3 = enabled
  • Automattic HTTPS Rewrites = enabled
  • Certificate Transparency Monitoring = enabled
  • Onion Routing (thuộc tab Network) = enabled

B. Sử dụng phần mềm SSH chuyên nghiệp để thao tác với VPS

Trong bài viết trước đây khi sử dụng CLI tương tự là Webinoly, tôi hoàn toàn sử dụng Console có sẵn của Vultr để thao tác với VPS, và nó hoàn thành tốt nhiệm vụ.

Tuy nhiên với SlickStack, bạn cần dùng một phần mềm SSH chuyên cho việc này. Lý do là vì mặc dù SlickStack chỉ cần cài đặt thông qua một lệnh duy nhất, nhưng màn hình kết quả cuối cùng của nó có rất nhiều thông tin (trong đó có thông tin user/pass để đăng nhập WordPress), và Console mặc định của VPS truy cập trực tiếp trên trình duyệt sẽ không hiển thị đủ trên một màn hình, và nó sẽ bị che mất các thông tin quan trọng, và bạn cũng không cuộn chuột được. Ví dụ thông tin bị che mất:

Thông tin bị che mất với màn hình terminal mặc định
Thông tin bị che mất với màn hình terminal mặc định

Phần mềm SSH tốt để làm nhiệm vụ này bạn có thể dùng Bitvise SSH Client, link tải: https://bitvise.com/ssh-client-download


C. Các bước thực thi

1. Kết nối với VPS qua Bitvise SSH Client.

Nhập IP, username root, rồi nhấn Log in.

Log in VPS

Nhấp tiếp Accept for this connection. Một màn hình đăng nhập hiện ra:

Đăng nhập vào VPS

Bạn chỉ việc copy pass ở Vultr paste vào để đăng nhập.

Click tiếp vào terminal console để mở màn hình thao tác:

Terminal Console

Màn hình terminal mở ra:

Màn hình terminal console để giao tiếp với VPS

2. Nhập câu lệnh

Trước tiên là cập nhật Ubuntu:

sudo apt update && sudo apt -y upgrade

Sau đó khởi động lại VPS bằng lệnh:

sudo reboot

Đăng nhập lại VPS, copy câu lệnh dưới đây (được lấy từ trang hướng dẫn cài đặt của SlickStack):

cd /tmp/ && wget -O ss slick.fyi/ss && bash ss

Sau đó tại màn hình terminal console, bạn click chuột phải để nó paste vào (lưu ý để tránh xung đột, các terminal KHÔNG sử dụng phím tắt Ctrl + V để paste).

Nhấn Enter, rồi nhập tên miền:

Nhập full và root domain
Nhập full và root domain

Full domain là tên miền đầy đủ, có thể có-www hoặc không-www, thường hiện nay nếu là cài mới lần đầu người ta để dạng không-www làm chuẩn.

Root domain là tên miền gốc tức là không kèm subdomain hay www gì cả.

Ví dụ nếu bình thường trang web của tôi được truy cập thông qua địa chỉ kiencang.net thì cả hai dòng trên tôi chỉ việc nhập kiencang.net vào.

Còn nếu bình thường trang web của tôi truy cập qua địa chỉ www.kiencang.net thì dòng full domain sẽ là www.kiencang.net, còn root domain sẽ là kiencang.net

Cuối cùng bạn nhấn Enter, và đợi khoảng 10 – 15 phút để quá trình cài đặt hoàn tất.

Quá trình cài đặt hoàn tất bạn sẽ thấy thông tin kiểu như dưới đây:

Current time: 2025.Oct.31-10:54:50
Build: OCT2025A
IPv4 Address: 149.28.138.70
IPv6 Address: N/A
Site Root Domain:
Site Full Domain: freehost.page
Adminer URL: https://freehost.page/a6f8fd5f2d02de1e6e766c13/
Server Noindex: false
Sudo User: sudo-4dbf72
Sudo Password: pass-42c2fb2fff4cd74020ec
SFTP User: sftp-553f32
SFTP Password: pass-42c2fb2fff4cd74020ec
SSH Keys: false
Staging site: false
Dev site: false
Guest user: guest-ef4ed9
Guest password: pass-3897625342225db8196d
Database name: production
Database user: mysql-097aa3
Database user password: pass-ed9c9be518591bfd9546
Database admin user: [email protected]
Database admin user password: pass-a313d03d9eeb15eb1469
Database host: 127.0.0.1
Database port: 3306
Database prefix: wp_
WP Multisite: false
WP Multisite subdomains: true
WP Multisite domain mapping: true
Rsync server: 192.0.2.1
Rsync user:
Rsync password:
Swapfile:
Crontab: OK
OpenSSL status: OK
Lets Encrypt status: MISSING

Đây là các thông tin quan trọng cần thiết để bạn thao tác với WordPress hoặc VPS sau này, bạn nên copy nó và đưa vào một file văn bản để lưu lại.

Copy trên terminal trên Bitvise cũng KHÔNG phải dùng tổ hợp phím tắt Ctrl + C, bạn đơn giản chỉ cần dùng chuột quét đoạn văn bản bạn muốn là nó tự động được copy.

Thông tin đăng nhập WordPress nằm ở đoạn này, ví dụ:

SFTP User: sftp-553f32
SFTP Password: pass-42c2fb2fff4cd74020ec

Ngoài ra thì SlickStack cũng tạo ra user/pass mới cho việc đăng nhập VPS (thay thế cho root và pass cũ tương ứng), ví dụ:

Sudo User: sudo-4dbf72
Sudo Password: pass-42c2fb2fff4cd74020ec

Để hoàn tất quá trình cài đặt, để bất cứ cập nhật nào của phần mềm cũng được tích hợp đầy đủ, bạn cần khởi động lại VPS bằng câu lệnh dưới đây:

sudo reboot

Giờ bạn hãy quay ra truy cập vào phần login của trang web để đăng nhập với user & pass được cung cấp ở kết quả trả về.

Đăng nhập thành công trang WordPress được tạo bởi SlickStack
Đăng nhập thành công trang WordPress được tạo bởi SlickStack

Dĩ nhiên bạn nên thay đổi thông tin pass này cho dễ nhớ hơn, và cập nhật email của user.


Video demo quá trình cài (không có thoại):


Vài lời nhận xét:

So với cách cài đặt của Webinoly, cách cài đặt của SlickStack phức tạp hơn đáng kể, chủ yếu do phải thực hiện hàng loạt điều chỉnh với Cloudflare.

Những người mới lần đầu thao tác chắc hẳn sẽ cảm thấy khổ sở ít nhiều! Tuy nhiên sau cửa ải Cloudflare phần còn lại khá đơn giản, với việc SlickStack gần như lo trọn bộ tất cả những việc phải làm (SlickStack chủ động cập nhật Ubuntu, mở các cổng, cài LEMP, cài trang WordPress với tên miền mà người dùng nhập [có luôn user/pass trả về sau khi hoàn tất], thêm SSL).

Có một điểm mà tôi để ý sau khi cài đặt xong, đó là tác giả của SlickStack chặn khá nhiều các plugin WordPress:

Chặn cài một số plugin WordPress
Chặn cài một số plugin WordPress

Ông tác giả có vẻ là người có quan điểm rất gắt về việc plugin nào không nên cài. Tôi sẽ tìm hiểu vấn đề này sau khi có cơ hội.

Viết một bình luận