在本文中,我们将详细介绍如何在 Linux 上构建一个完全可丢弃的 WordPress 多站点实验室,以便安全地练习所有 WP-CLI 命令。这份实操指南涵盖了完整的 WordPress 多站点设置、从单站点转换为多站点、独立站点以及完整的清理步骤。
适用系统: Debian、Ubuntu、Linux Mint、Fedora、RHEL、AlmaLinux、Rocky Linux
最后验证与更新: 2026 年 5 月 30 日
系列第 4 部分,共 4 部分 – WP-CLI 系列
为什么需要一个可丢弃的 WordPress 多站点实验室
学习 WP-CLI 最快的方法就是使用它,而不仅仅是阅读。然而,在真实站点上运行不熟悉的命令是有风险的。一个错误的 wp db reset 或打错的 search-replace 命令可能会瞬间擦除数据,且无法撤销。
一个可丢弃的 WordPress 实验室可以完全解决这个问题。你将获得一个完全运行在本地机器上的、功能完整的 WordPress 环境。你可以故意破坏它,几秒钟内重建,并重复执行同一个命令十次,直到感觉自然为止。你在这里做的任何事情都不会影响任何真实站点。
此外,由于整个设置都运行在你的本地文件系统上,你不需要域名、托管账户或互联网连接(安装必要软件除外)来进行练习。所有内容都保留在你的机器上,直到你决定删除它。
最终你将拥有什么
完成本指南后,你将拥有:
- 一个在
http://localhost:8000本地运行、功能完整的 WordPress 多站点网络 - 两个练习子站点,位于
http://localhost:8000/client1和http://localhost:8000/client2 - 一个在
http://localhost:8001运行的独立 WordPress 站点 - 在所有环境中安装并正常工作的 WP-CLI
- 一个在你完成后能清除一切的完整移除流程
开始前需要准备什么
本指南完全专注于实验室设置。它不会在此重复完整的先决条件说明。开始之前,请确保你具备:
- 一台 Linux 桌面或服务器(Debian、Ubuntu、Fedora、RHEL、AlmaLinux 或 Rocky Linux)
- 一个具有 sudo 权限的终端
- 基本的命令行操作能力
如果你完全是 WP-CLI 新手,并且尚未阅读完整的系统要求和安装背景,请先阅读 WP-CLI 完整指南。该指南详细介绍了 PHP 版本要求、必需的扩展、SSH 访问和数据库设置。熟悉基础知识后再回到这里。
注意: 本指南使用内置的 PHP 开发服务器(php -S)进行本地测试。此服务器仅用于练习。切勿在生产环境中使用。
第 1 步:安装所需软件包
首先,安装你的实验室所需的 PHP、MariaDB 和支持工具。根据你的 Linux 发行版选择命令。
Fedora / RHEL / AlmaLinux / Rocky Linux:
sudo dnf install php php-mysqlnd mariadb-server wget unzip less
Debian / Ubuntu / Linux Mint:
sudo apt update
sudo apt install php php-mysql mariadb-server wget unzip less
接下来,启动 MariaDB 并启用它,使其在每次启动时自动运行:
sudo systemctl enable --now mariadb
注意: 在 Ubuntu 中,MariaDB 服务会自动启动。无需手动启动。
在继续之前,确认 MariaDB 正在运行:
sudo systemctl status mariadb
示例输出:
● mariadb.service - MariaDB 11.8.6 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: enabled)
Active: active (running) since Sat 2026-05-30 16:33:26 IST; 1min 5s ago
Invocation: af1424889bbb491997884ffd57e779f6
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Process: 31374 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] >
Process: 31441 ExecStartPost=/bin/rm -f /run/mysqld/wsrep-start-position /run/mysqld/wsrep-new-cluster (code=exited, status=0/SUCCE>
Process: 31443 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
Main PID: 31426 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 10 (limit: 90283)
Memory: 91.7M (peak: 96.6M)
CPU: 723ms
CGroup: /system.slice/mariadb.service
└─31426 /usr/sbin/mariadbd
May 30 16:33:26 Ubuntu2604 mariadbd[31426]: 2026-05-30 16:33:26 0 [Note] /usr/sbin/mariadbd: ready for connections.
May 30 16:33:26 Ubuntu2604 mariadbd[31426]: Version: '11.8.6-MariaDB-5 from Ubuntu' socket: '/run/mysqld/mysqld.sock' port: 3306 -- >
May 30 16:33:26 Ubuntu2604 systemd[1]: Started mariadb.service - MariaDB 11.8.6 database server.
你应该在输出中看到 active (running)。如果没有,请运行 sudo systemctl start mariadb 并再次检查状态。
第 2 步:创建数据库
WP-CLI 需要一个准备好的数据库才能安装 WordPress。打开 MariaDB shell:
sudo mysql
然后在 MariaDB 提示符内运行以下命令:
CREATE DATABASE wpcli_lab CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wpcli_lab.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
这里需要注意几点。CHARACTER SET utf8mb4 设置很重要。它能确保 WordPress 从一开始就能正确处理国际字符、表情符号和特殊符号。FLUSH PRIVILEGES 这行告诉 MariaDB 立即重新加载其权限表,以便新用户能立即生效。
对于生产环境: 始终使用一个强且唯一的 password,而不是
password。对于这个练习实验室,使用简单的 password 是可以的,因为数据库只能本地访问。
验证数据库是否已创建:
sudo mysql -e "SHOW DATABASES;"
你应该在列表中看到 wpcli_lab。
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wpcli_lab |
+--------------------+
第 3 步:安装 WP-CLI
下载最新的稳定版 WP-CLI:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
使文件可执行:
chmod +x wp-cli.phar
将其移动到一个全局位置,以便你可以从任何地方运行 wp:
sudo mv wp-cli.phar /usr/local/bin/wp
验证安装:
wp --info
你应该会看到 WP-CLI 版本信息、你的 PHP 二进制路径、PHP 版本和系统详细信息。如果你看到了所有这些,说明 WP-CLI 已正确安装并可以使用。
示例输出:
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: /usr/bin/mariadb
MySQL version: mariadb from 11.8.6-MariaDB, client 15.2 for debian-linux-gnu (x86_64) using EditLine wrapper
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/ostechnix/.wp-cli/cache
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.12.0
第 4 步:创建练习目录
为你的多站点实验室创建一个专用文件夹并进入:
mkdir ~/wpcli-lab
cd ~/wpcli-lab
你主练习站点的所有 WordPress 文件都将存放在这里。将其放在你的主目录中便于查找,也便于在完成后删除。
第 5 步:下载 WordPress
直接将最新版本的 WordPress 核心下载到你的练习目录中:
wp core download
WP-CLI 会从官方的 WordPress.org 仓库下载 WordPress 并将其解压到当前目录。
此命令完成后,运行 ls 确认 WordPress 文件已存在:
ls
你应该会看到像 wp-admin、wp-content 和 wp-includes 这样的文件夹,以及像 wp-config-sample.php 和 index.php 这样的文件。
第 6 步:创建 wp-config.php
使用你在第 2 步中创建的数据库凭据生成 wp-config.php 文件:
wp config create \
--dbname=wpcli_lab \
--dbuser=wpuser \
--dbpass=password
将数据库名称、用户和 password 替换为你自己的。
WP-CLI 会读取当前目录,找到 wp-config-sample.php,填入你的数据库详细信息,并将结果保存为 wp-config.php。此外,它会自动将数据库主机设置为 localhost,这对于本地 MariaDB 安装是正确的。
如果你看到错误 2002 “没有那个文件或目录”: 将上述命令中的
--dbhost=localhost替换为--dbhost=127.0.0.1。这会强制 PHP 使用 TCP 连接而不是 Unix 套接字,从而解决某些系统上的问题。
确认配置文件已创建:
ls wp-config.php
第 7 步:安装 WordPress
现在运行 WordPress 安装程序。这将创建所有数据库表并设置 admin 账户:
wp core install \
--url=http://localhost:8000 \
--title="WP-CLI Lab" \
--admin_user=admin \
--admin_password=password \
[email protected] \
--skip-email
--skip-email 标志会阻止 WordPress 在安装过程中尝试发送欢迎邮件。由于这是一个没有配置邮件服务器的本地实验室,跳过它可以防止出现令人困惑的警告。
验证安装是否成功完成:
wp core is-installed && echo "WordPress installed successfully"
如果你看到“WordPress installed successfully”,请继续下一步。
第 8 步:启动本地 PHP 服务器
PHP 包含一个内置的开发服务器,你可以通过一个命令启动。打开一个终端窗口并运行:
cd ~/wpcli-lab
php -S localhost:8000
让这个终端窗口保持运行。PHP 服务器在前台运行,因此关闭此窗口会停止服务器。
现在打开你的网页浏览器并访问:
http://localhost:8000
你应该会看到你的 WordPress 站点。
要访问 admin 仪表板,请访问:
http://localhost:8000/wp-admin
使用 admin 和 password 登录。同样,如果你在之前的步骤中安装 WordPress 时使用了不同的用户名和 password,请将它们替换为你自己的值。
此时,WordPress 已作为单站点在本地完全运行。下一步将其转换为多站点。
第 9 步:转换为多站点
打开一个第二个终端窗口——让第一个窗口保持运行 PHP 服务器。在新终端中,导航到你的实验室目录:
cd ~/wpcli-lab
将单站点 WordPress 安装转换为多站点网络:
wp core multisite-convert
示例输出:
Set up multisite database tables.
Added multisite constants to 'wp-config.php'.
Success: Network installed. Don't forget to set up rewrite rules (and a .htaccess file, if using Apache).
这一个命令会自动完成四件事:
- 在
wp-config.php中启用多站点模式 - 更新数据库中的 WordPress 选项以激活网络
- 创建多站点所需的额外数据库表
- 启用网络管理仪表板
Apache 用户: 如果你在 Apache 服务器(而非 PHP 内置服务器)上运行此操作,你还需要使用多站点重写规则更新你的
.htaccess文件。WP-CLI 会自动处理wp-config.php,但不会更新.htaccess。请查阅 WordPress 多站点文档 以获取需要添加的正确规则。
第 10 步:验证多站点
确认多站点是否正常工作:
wp site list
你应该会看到类似这样的输出:
+---------+------------------------+---------------------+---------------------+
| blog_id | url | last_updated | registered |
+---------+------------------------+---------------------+---------------------+
| 1 | http://localhost:8000/ | 0000-00-00 00:00:00 | 2026-05-30 11:23:39 |
+---------+------------------------+---------------------+---------------------+
一个站点意味着网络已启动并运行。你还可以在浏览器中访问 WordPress 网络管理仪表板:
http://localhost:8000/wp-admin/network
使用相同的 admin 凭据登录。网络管理面板是你管理所有站点、网络级插件以及整个多站点安装的网络设置的地方。
你可以在“我的站点”标签下找到你的各个站点。
从上面的输出可以看出,目前我们有一个名为“WP-CLI LAB”的 WordPress 站点。
第 11 步:创建额外的子站点
现在向你的网络添加两个练习子站点。每个子站点都为你提供一个独立的 WordPress 环境,供你独立实验:
wp site create --slug=client1 --title="Client 1"
wp site create --slug=client2 --title="Client 2"
验证所有三个站点现在都出现在网络中:
wp site list
你应该会看到所有三个条目,根站点加上两个子站点:
+---------+--------------------------------+---------------------+---------------------+
| blog_id | url | last_updated | registered |
+---------+--------------------------------+---------------------+---------------------+
| 1 | http://localhost:8000/ | 0000-00-00 00:00:00 | 2026-05-30 11:23:39 |
| 2 | http://localhost:8000/client1/ | 2026-05-30 11:35:43 | 2026-05-30 11:35:43 |
| 3 | http://localhost:8000/client2/ | 2026-05-30 11:35:54 | 2026-05-30 11:35:54 |
+---------+--------------------------------+---------------------+---------------------+
在浏览器中打开每个子站点以确认它们能加载:
http://localhost:8000/client1
http://localhost:8000/client2
你还可以在 WordPress 网络管理仪表板的“我的站点”标签下查看它们:
两个子站点现在都是运行在同一网络内的完全独立的 WordPress 站点。因此,你可以练习网络级命令(如 wp plugin activate --network)以及使用 --url 标志的站点特定命令。
第 12 步:创建一个独立的 WordPress 站点
除了多站点网络,你还可以启动一个完全独立的 WordPress 安装。这对于练习仅适用于单站点设置的命令,或并排比较单站点和多站点的行为非常有用。
创建一个新目录:
mkdir ~/newsite
cd ~/newsite
为此站点创建一个新数据库。 打开 MariaDB:
sudo mysql
在 MariaDB 提示符内:
CREATE DATABASE newsite_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON newsite_db.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
下载 WordPress:
wp core download
创建 wp-config.php:
wp config create \
--dbname=newsite_db \
--dbuser=newuser \
--dbpass=password
安装 WordPress:
wp core install \
--url=http://localhost:8001 \
--title="New Site" \
--admin_user=admin \
--admin_password=password \
[email protected] \
--skip-email
在不同的端口上启动 PHP 服务器(为此打开第三个终端窗口):
cd ~/newsite
php -S localhost:8001
在浏览器中打开站点:
http://localhost:8001
你现在拥有一个完全独立的 WordPress 安装,与你的多站点网络并行运行。每个环境都是独立的,一个环境中的更改不会影响另一个。
第 13 步:练习 WP-CLI 命令
你的实验室已准备就绪。以下是你可以在三个环境中安全练习的内容:
插件管理:
# Install and activate a plugin on the multisite network
cd ~/wpcli-lab
wp plugin install hello-dolly --activate --url=http://localhost:8000/client1
# Activate a plugin network-wide
wp plugin activate hello-dolly --network
# List plugins across the network
wp plugin list --url=http://localhost:8000/client2
多站点 admin 管理:
# List all sites
wp site list
# Create a new subsite
wp site create --slug=testsite --title="Test Site"
# Delete a subsite
wp site delete 4 --yes
用户管理:
# Create a user on a specific subsite
wp user create senthil [email protected] --role=editor \
--url=http://localhost:8000/client1
# List all users network-wide
wp user list --network
# Generate test users
wp user generate --count=5 --role=subscriber
数据库操作:
# Export the database
wp db export backup.sql
# Check database size
wp db size --human-readable
# Run a search-replace dry run
wp search-replace 'localhost:8000' 'example.com' --dry-run
Cron 任务:
# List scheduled cron events
wp cron event list
# Run all cron events immediately
wp cron event run --all
备份与恢复:
# Export
wp db export ~/backup-$(date +%Y%m%d).sql
# Import
wp db import ~/backup-20250101.sql
故障排除:
# Verify core files
wp core verify-checksums
# Flush all caches
wp cache flush
# Check for available updates
wp core check-update
wp plugin list --update=available
由于实验室是完全可丢弃的,你可以自由实验,无需担心破坏任何重要的东西。如果你损坏了数据库或删除了不该删除的内容,只需拆除实验室并从第 4 步开始重建。一旦你做过一次,整个过程只需不到五分钟。
第 14 步:清理所有内容
当你完成练习后,完全移除所有内容。本节将按正确的移除顺序引导你完成每个组件。
停止 PHP 本地服务器
在每个运行 PHP 服务器的终端窗口中,按 Ctrl + C 停止它。如果 localhost:8000 和 localhost:8001 都在运行,请对两者都执行此操作。
移除 WordPress 目录
rm -rf ~/wpcli-lab
rm -rf ~/newsite
移除所有数据库和用户
打开 MariaDB:
sudo mysql
在 MariaDB 提示符内:
DROP DATABASE wpcli_lab;
DROP DATABASE newsite_db;
DROP USER 'wpuser'@'localhost';
DROP USER 'newuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
移除 WP-CLI
sudo rm /usr/local/bin/wp
移除 PHP 和 MariaDB(可选)
仅当你专门为此实验室安装了它们,并且你的系统上不再需要它们时才执行此操作。
Fedora / RHEL / AlmaLinux / Rocky Linux:
sudo dnf remove php php-mysqlnd mariadb-server
Ubuntu / Debian / Linux Mint:
sudo apt remove php php-mysql mariadb-server
sudo apt autoremove
验证清理
运行以下每个检查以确认所有内容都已删除:
# Check WordPress directories are removed
ls ~/wpcli-lab # Should return: No such file or directory
ls ~/newsite # Should return: No such file or directory
# Check databases are removed
sudo mysql -e "SHOW DATABASES;"
# wpcli_lab and newsite_db should no longer appear
# If mysql is already uninstalled, you would see command not found.
# Check WP-CLI is removed
wp --info # Should return: command not found or no such file
此时,你的系统已恢复到干净状态。所有 WordPress 文件、数据库、用户和 WP-CLI 本身都已完全移除。
最后的话
一个可丢弃的实验室确实是学习 WP-CLI 最快的方法之一。与其从速查表中记忆命令语法,不如在真实环境中运行命令,并亲眼看到它们的作用。你通过重复来学习——创建站点、故意破坏东西,并根据需要多次重建环境。
对于 Linux 用户来说,WP-CLI 感觉自然,因为它能融入你每天使用的标准命令行工作流程。你用于其他所有事情的同一个终端,变成了你的 WordPress 管理工具。
需要养成的关键习惯是:每次你想学习一个新的 WP-CLI 命令时,回到这个实验室,启动它,并首先在这里运行它。在你亲眼看到不熟悉的命令在安全环境中的作用之前,不要在真实站点上运行它。
接下来练习什么
你的实验室正在运行。以下是来自 WP-CLI 命令指南的五个命令,可以开始练习。每个命令都会教你一些根本不同的东西:
wp plugin update --all- 一次性更新所有插件,看看 WP-CLI 与仪表板相比有多快wp search-replace 'localhost:8000' 'mysite.com' --dry-run- 在提交之前,通过预览安全地练习域名迁移wp user generate --count=10 --role=subscriber- 立即创建十个测试用户来练习用户管理wp db export backup.sql- 进行你的第一次数据库备份,并确认它创建了文件wp core verify-checksums- 检查你的 WordPress 安装文件的完整性
查看完整的命令参考: 第 3 部分:WP-CLI 命令 - 完整参考指南
本系列的其他部分:




