Trước khi bắt đầu

Đây là Phần 2 của loạt bài WP-CLI. Nếu bạn chưa đọc Phần 1, hãy bắt đầu từ đó.

Nó giải thích WP-CLI là gì, tại sao các chuyên gia sử dụng nó, và gói hosting nào hỗ trợ nó.

Danh sách kiểm tra tiên quyết

Trước khi tải WP-CLI, hệ thống của bạn cần năm thứ được thiết lập. Nếu thiếu bất kỳ thứ nào, WP-CLI sẽ không cài đặt được hoặc báo lỗi ngay khi bạn chạy lệnh đầu tiên. Hãy làm theo danh sách này từ trên xuống dưới.

Tiên quyết 1: Môi trường giống UNIX

WP-CLI chạy gốc trên Linux, macOS và FreeBSD. Trên Windows, hãy dùng WSL (Windows Subsystem for Linux). WP-CLI không chạy trong Command Prompt hay PowerShell gốc của Windows.

Xác nhận shell của bạn hoạt động:

whoami
pwd

Cả hai lệnh đều phải trả về kết quả mà không có lỗi. Nếu được, môi trường của bạn đã sẵn sàng.

Tiên quyết 2: Truy cập SSH

WP-CLI cần truy cập terminal vào máy chủ của bạn. Trên máy local, điều này đã có sẵn. Trên máy chủ từ xa, bạn cần SSH enabled trong gói hosting của bạn.

Xác minh truy cập SSH đang hoạt động:

echo "SSH is working"

Nếu bạn thấy dòng đó được in lại, bạn đã có quyền truy cập cần thiết. Nếu bạn không chắc gói hosting của mình có SSH hay không, hãy tham khảo phần Yêu cầu Hosting trong Phần 1 của loạt bài này.

Tiên quyết 3: PHP 7.2.24 trở lên với các extension cần thiết

Nếu đây là máy chủ mới hoặc bản cài đặt OS sạch, PHP có thể chưa được cài đặt. Chạy kiểm tra này trước:

php --version

Nếu bạn thấy "command not found", hãy cài đặt PHP trước khi làm bất cứ điều gì khác.

Bạn cần PHP 7.2.24 trở lên (đây là mức tối thiểu chính xác theo tài liệu chính thức). Nếu phiên bản của bạn cũ hơn, hãy cập nhật PHP trước khi tiếp tục.

Cài đặt PHP với các extension cần thiết trên Ubuntu / Debian:

sudo apt update
sudo apt install php php-cli php-mysql php-curl php-xml php-mbstring php-zip php-gd php-intl php-bcmath

Fedora / RHEL / CentOS / AlmaLinux / Rocky Linux:

sudo dnf install php php-cli php-mysqlnd php-curl php-xml php-mbstring php-zip php-gd php-intl php-bcmath

openSUSE:

sudo zypper install php8 php8-cli php8-mysql php8-curl php8-xml php8-mbstring php8-zip php8-gd php8-intl php8-bcmath

macOS (qua Homebrew):

brew install php

Lưu ý: Hầu hết các extension cần thiết đã được bao gồm theo mặc định trên macOS.

Sau khi cài đặt, xác nhận PHP đã sẵn sàng:

php --version
php -m | grep -E 'mysqli|curl|xml|mbstring|zip|gd|intl'

Cả hai kiểm tra đều phải trả về kết quả trước khi bạn chuyển sang bước tiếp theo.

Khi truy vấn các extension PHP, bạn sẽ thấy tên từng extension được in lại. Nếu thiếu bất kỳ extension nào trong kết quả, hãy cài đặt gói dành riêng cho phiên bản của extension đó và chạy lại kiểm tra.

Tiên quyết 4: MySQL hoặc MariaDB đang chạy và có thể truy cập

WordPress lưu trữ mọi thứ (nội dung, cài đặt, người dùng và tùy chọn) trong một cơ sở dữ liệu. Nếu không có máy chủ cơ sở dữ liệu đang chạy, wp config create và wp core install sẽ thất bại ngay lập tức với lỗi kết nối.

WordPress khuyến nghị MySQL 8.0+ hoặc MariaDB 10.6+ làm nền tảng an toàn, hiện đại cho hiệu suất và bảo mật. Đối với bất kỳ bản cài đặt mới nào, hãy dùng MySQL 8.4 LTS hoặc MariaDB 10.11 LTS. Cả hai đều có cửa sổ hỗ trợ dài hạn.

Kiểm tra xem máy chủ cơ sở dữ liệu đã được cài đặt chưa

mysql --version
# or
mariadb --version

Nếu bạn thấy "command not found" cho cả hai, hãy cài đặt một trong số chúng ngay bây giờ.

Cài đặt MySQL

Debian / Ubuntu / Linux Mint:

sudo apt update
sudo apt install mysql-server

RHEL / CentOS / AlmaLinux / Rocky Linux:

sudo dnf install mysql-server

Cài đặt MariaDB (Khuyến nghị thay thế tương thích)

Debian / Ubuntu / Linux Mint:

sudo apt update
sudo apt install mariadb-server

Fedora / RHEL / CentOS / AlmaLinux / Rocky Linux:

sudo dnf install mariadb-server

openSUSE:

sudo zypper install mariadb

macOS (qua Homebrew):

brew install mariadb

Khởi động và kích hoạt dịch vụ

# For MySQL
sudo systemctl start mysql
sudo systemctl enable mysql
# For MariaDB
sudo systemctl start mariadb
sudo systemctl enable mariadb

Cờ enable làm cho dịch vụ tự động khởi động mỗi khi máy chủ của bạn khởi động lại. Nếu không có nó, bạn phải khởi động cơ sở dữ liệu theo cách thủ công mỗi lần.

Chạy trình hướng dẫn cài đặt bảo mật

Khuyến nghị cho bất kỳ môi trường không phải Docker, không phải local:

# For MySQL
sudo mysql_secure_installation
# For MariaDB
sudo mariadb-secure-installation

Thao tác này xóa các cơ sở dữ liệu thử nghiệm mặc định, vô hiệu hóa đăng nhập root từ xa và đặt mật khẩu root mạnh. Mất khoảng hai phút và cải thiện đáng kể bảo mật cơ sở dữ liệu của bạn.

Tạo cơ sở dữ liệu và người dùng WordPress

sudo mysql -u root -p

Sau đó, bên trong dấu nhắc MySQL/MariaDB, chạy các lệnh SQL này:

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'StrongPassword123';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Thay thế các giá trị sau bằng giá trị của riêng bạn:

  • wordpress - tên cơ sở dữ liệu bạn muốn (ví dụ: mysite_db).
  • wpuser - tên người dùng cơ sở dữ liệu bạn muốn.
  • StrongPassword123 - một mật khẩu mạnh, duy nhất. Không bao giờ sử dụng mật khẩu đơn giản trên máy chủ trực tiếp.

Cài đặt CHARACTER SET utf8mb4 đảm bảo WordPress xử lý chính xác các ký tự quốc tế, biểu tượng cảm xúc và ký hiệu đặc biệt ngay từ đầu. Dòng FLUSH PRIVILEGES yêu cầu máy chủ cơ sở dữ liệu tải lại bảng quyền của nó ngay lập tức.

Xác minh kết nối cơ sở dữ liệu

Trước khi tiếp tục, hãy xác nhận người dùng mới thực sự có thể kết nối:

mysql -u wpuser -p wordpress

Nếu thao tác này mở dấu nhắc MySQL mà không có lỗi, cơ sở dữ liệu của bạn đã sẵn sàng. Gõ exit để thoát.

Tại sao đôi khi dùng 127.0.0.1 thay vì localhost: Khi bạn truyền --dbhost=localhost, PHP kết nối qua một tệp socket Unix. Nếu đường dẫn socket đó khác nhau giữa PHP và MySQL trên hệ thống của bạn, bạn sẽ gặp lỗi 2002 "No such file or directory." Sử dụng --dbhost=127.0.0.1 buộc PHP sử dụng kết nối TCP, bỏ qua socket hoàn toàn. Chuyển sang 127.0.0.1 nếu localhost gây ra lỗi đó.

Tiên quyết 5: WordPress 4.9 trở lên

WP-CLI yêu cầu WordPress 4.9 trở lên. Các phiên bản cũ hơn bản phát hành WordPress mới nhất có thể có chức năng bị suy giảm. Đây không phải là vấn đề đối với các bản cài đặt mới, vì việc tải xuống lõi WordPress bằng wp core download luôn lấy phiên bản ổn định mới nhất. Tuy nhiên, nếu bạn đang chạy WP-CLI trên một trang web cũ hiện có, hãy kiểm tra phiên bản WordPress của bạn trước:

wp core version

Nếu phiên bản dưới 4.9, hãy cập nhật WordPress trước khi dựa vào WP-CLI:

wp core update

Kiểm tra sơ bộ đầy đủ

Chạy tất cả bốn kiểm tra trước khi tải WP-CLI. Mọi dòng phải trả về kết quả sạch sẽ, không có lỗi trước khi bạn tiếp tục.

# 1. Confirm PHP version is 7.2.24 or higher
php --version
# 2. Confirm all required extensions are loaded
php -m | grep -E 'mysqli|curl|xml|mbstring|zip|gd|intl|bcmath'
# 3. Confirm MySQL or MariaDB is running
sudo systemctl status mysql    # or: sudo systemctl status mariadb
# 4. Confirm you can log into the database with the WordPress user
mysql -u wpuser -p wordpress -e "SELECT 'Connection OK';"

Tất cả bốn kiểm tra phải vượt qua sạch sẽ. Khi đã xong, hãy tải WP-CLI.

Bước 1: Xác minh truy cập SSH

Trước khi tải WP-CLI, hãy thực hiện kiểm tra nhanh cuối cùng để xác nhận phiên shell của bạn đang hoạt động và bạn đang ở đúng vị trí trên máy chủ:

whoami   # shows which user you are running as
pwd      # shows which directory you are currently in

Cả hai lệnh phải trả về kết quả mà không có lỗi. Nếu bạn đang ở trên máy chủ từ xa, hãy đảm bảo bạn đã kết nối qua SSH trước khi tiếp tục. Nếu bạn đang làm việc cục bộ, ví dụ như bên trong một container Docker hoặc môi trường Linux cục bộ, bạn đã có quyền truy cập và có thể chuyển thẳng đến Bước 2.

Bước 2: Tải WP-CLI

Tải bản phát hành WP-CLI ổn định mới nhất bằng:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Hoặc dùng wget nếu curl không có sẵn trên hệ thống của bạn:

wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Đối với những người chưa biết, tệp PHAR là một ứng dụng PHP khép kín.

Xác minh chữ ký PHAR

Bước này được khuyến nghị cho các máy chủ sản xuất và môi trường có ý thức bảo mật. Nó xác nhận tệp đã tải xuống không bị giả mạo.

Tải tệp chữ ký:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.asc

Sau đó xác minh nó với khóa công khai của WP-CLI:

gpg --keyserver keyserver.ubuntu.com --recv-keys 63AF7AA15067C05616FDDD88A3A2E8F226F0BC06
gpg --verify wp-cli.phar.asc wp-cli.phar

Một tệp hợp lệ trả về Good signature from "WP-CLI (Signing Key)". Nếu xác minh thất bại, hãy xóa tệp PHAR và tải lại. Đừng cài đặt một tệp không vượt qua được xác minh chữ ký.

Bước 3: Xác minh bản tải xuống

Kiểm tra xem tệp đã tải xuống có chạy chính xác trước khi cài đặt nó trên toàn hệ thống hay không:

php wp-cli.phar --info

Thao tác này sẽ hiển thị thông tin phiên bản WP-CLI và cấu hình hệ thống của bạn, đường dẫn nhị phân PHP, phiên bản PHP và chi tiết HĐH. Nếu bạn thấy kết quả đó, tệp hợp lệ và sẵn sàng để cài đặt.

Bước 4: Làm cho nó có thể truy cập toàn cầu

Cấp quyền thực thi cho tệp, sau đó di chuyển nó vào đường dẫn hệ thống của bạn để bạn có thể chạy wp từ bất kỳ thư mục nào:

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

Bước 5: Xác nhận cài đặt

Xác minh lệnh wp hoạt động từ bất kỳ đâu trên hệ thống của bạn:

wp --info

Nếu bạn thấy thông tin phiên bản và hệ thống, WP-CLI đã được cài đặt đầy đủ và sẵn sàng để sử dụng. Đây là kết quả bạn sẽ mong đợi:

OS:	Linux 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64
Shell:	/bin/bash
PHP binary:	/usr/bin/php8.5
PHP version:	8.5.4
php.ini used:	/etc/php/8.5/cli/php.ini
MySQL binary:
MySQL version:
SQL modes:
WP-CLI root dir:	phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:	phar://wp-cli.phar/vendor
WP_CLI phar path:	phar:///usr/local/bin/wp
WP-CLI packages dir:
WP-CLI cache dir:	/home/senthilkumar/.wp-cli/cache
WP-CLI global config:
WP-CLI project config:
WP-CLI version:	2.12.0

Để xem tài liệu cài đặt chính thức, hãy truy cập: https://wp-cli.org/#installing.

Các phương pháp cài đặt thay thế

Phương pháp PHAR ở trên hoạt động trên mọi hệ thống. Tuy nhiên, hai phương pháp thay thế có thể phù hợp hơn với quy trình làm việc của bạn.

Ubuntu PPA (cài đặt qua apt)

Nếu bạn quản lý máy chủ Ubuntu hoặc Debian và thích cài đặt các công cụ thông qua apt, một PPA do cộng đồng -maintained cung cấp phiên bản đóng gói của WP-CLI:

sudo add-apt-repository ppa:tiagohillebrandt/wp-cli
sudo apt update
sudo apt install wp-cli

PPA được duy trì bởi một tình nguyện viên cộng đồng và có thể chậm hơn một chút so với bản phát hành WP-CLI mới nhất. Để có phiên bản mới nhất, hãy sử dụng phương pháp PHAR ở trên. Xác minh phiên bản bạn có bằng wp cli version sau khi cài đặt.

Cài đặt toàn cầu qua Composer

Nếu bạn đã sử dụng Composer trong quy trình phát triển PHP của mình, bạn có thể cài đặt WP-CLI như một gói Composer toàn cầu:

composer global require wp-cli/wp-cli-bundle

Đảm bảo thư mục bin toàn cầu của Composer nằm trong $PATH của bạn. Trên hầu hết các hệ thống, nó là ~/.composer/vendor/bin hoặc ~/.config/composer/vendor/bin:

export PATH="$HOME/.composer/vendor/bin:$PATH"

Thêm dòng đó vào ~/.bash_profile của bạn để làm cho nó vĩnh viễn. Sau đó xác nhận WP-CLI hoạt động:

wp --info

Phương pháp Composer là lý tưởng nếu bạn muốn WP-CLI được ghim vào một phiên bản cụ thể trong một dự án hoặc nếu nhóm của bạn sử dụng Composer để quản lý phụ thuộc trên các công cụ.

Cài đặt trên Shared Hosting

Một số shared host bao gồm WP-CLI được cài đặt sẵn. Kiểm tra tài liệu của host hoặc chạy wp --info trực tiếp sau khi đăng nhập qua SSH. Nếu nó trả về kết quả, WP-CLI đã có sẵn ở đó.

Nếu nó chưa được cài đặt sẵn nhưng gói của bạn bao gồm SSH, bạn có thể chạy trực tiếp tệp PHAR mà không cần di chuyển nó đến đường dẫn toàn cầu:

php wp-cli.phar --info

Để làm cho việc gõ này dễ dàng hơn một chút, hãy thêm một bí danh vào ~/.bash_profile của bạn:

alias wp='php ~/wp-cli.phar'

Sau đó tải lại hồ sơ:

source ~/.bash_profile

Sau đó, wp --info hoạt động như thể nó được cài đặt toàn cầu.

Kích hoạt Tab Completion

WP-CLI hỗ trợ tab completion trong Bash, Zsh và Fish. Bạn có thể tải script completion từ liên kết này: https://github.com/wp-cli/wp-cli/raw/main/utils/wp-completion.bash.

Đối với Bash, hãy tải script completion và nguồn nó từ ~/.bash_profile:

source /FULL/PATH/TO/wp-completion.bash

Sau đó tải lại hồ sơ của bạn:

source ~/.bash_profile

Đối với Zsh với Oh My Zsh, thêm wp-cli vào dòng plugins của bạn trong ~/.zshrc:

plugins=(wp-cli git ...)

Đối với Fish shell, tải wp.fish và đặt nó vào ~/.config/fish/completions/wp.fish. Fish tự động nguồn nó khi bạn gõ wp và nhấn Tab.

Câu hỏi thường gặp (FAQ)

H: Phiên bản PHP tối thiểu cho WP-CLI là gì?

Đ: WP-CLI yêu cầu PHP 7.2.24 trở lên. Phiên bản được khuyến nghị cho 2026 là PHP 8.4. Nó nhanh hơn, được hỗ trợ tích cực và là phiên bản mà hầu hết các host hiện đang sử dụng. Xác nhận của bạn bằng php --version.

H: Tôi đã cài đặt PHP nhưng WP-CLI vẫn báo lỗi fatal về mysqli_init. Có vấn đề gì?

Đ: PHP đã được cài đặt nhưng extension php-mysql bị thiếu. Cài đặt nó bằng sudo apt install php-mysql (Ubuntu/Debian) hoặc sudo dnf install php-mysqlnd (RHEL/Fedora). Sau đó xác nhận nó đã được tải bằng php -m | grep mysqli.

H: Tôi gặp lỗi 2002 "No such file or directory" khi chạy wp config create. Làm cách nào để sửa?

Đ: Thay thế --dbhost=localhost bằng --dbhost=127.0.0.1. Điều này buộc PHP sử dụng kết nối TCP thay vì socket Unix, khắc phục sự không khớp giữa đường dẫn socket PHP và MySQL trên một số hệ thống.

H: Tôi có thể cài đặt WP-CLI mà không cần quyền sudo không?

Đ: Có. Bỏ qua bước sudo mv và thay vào đó chạy trực tiếp tệp PHAR bằng php wp-cli.phar <command>, hoặc lưu nó vào một thư mục trong PATH người dùng của bạn như ~/bin/wp và thêm ~/bin vào $PATH của bạn.

H: Tôi có cần cài đặt lại WP-CLI khi cập nhật PHP không?

Đ: Không. WP-CLI là một tệp PHAR khép kín và không cần cài đặt lại sau khi cập nhật PHP. Tuy nhiên, hãy chạy wp cli update định kỳ để giữ cho WP-CLI luôn cập nhật.

H: Làm cách nào để cập nhật WP-CLI sau khi cài đặt?

Đ: Chạy lệnh này từ bất kỳ đâu:

wp cli update

Kiểm tra các bản cập nhật có sẵn trước mà không cần áp dụng chúng:

wp cli check-update

Tiếp theo là gì

WP-CLI đã được cài đặt và xác minh. Bây giờ bạn đã sẵn sàng để bắt đầu chạy các lệnh. Tiếp tục đến Phần 3 của loạt bài WP-CLI để tìm hiểu các lệnh WP-CLI thiết yếu:

Hướng dẫn đó bao gồm chi tiết mọi danh mục lệnh - plugin, chủ đề, người dùng, cơ sở dữ liệu, multisite, script tự động hóa, tích hợp CI/CD, lệnh tùy chỉnh và các phương pháp hay nhất về bảo mật. Nó cũng bao gồm một bảng cheat sheet đầy đủ mà bạn có thể đánh dấu và quay lại bất kỳ lúc nào.

Cũng trong loạt bài này: