
文章目录
结论先行:把 WordPress 日常运维做成 WP-CLI 一行命令,核心是装好 wp 可执行文件并确认运行用户有站点目录读写权;执行前后用 wp option get home 与 wp db size 做校验,异常时用备份 SQL 或 wp db import 回滚。命令返回 0 且版本号、数据行数符合预期,即判断做对。
安装与权限
2026 年 WP-CLI 稳定版为 2.11.x,官方推荐通过 developer.wordpress.org 的 WP-CLI 文档获取安装脚本。多数 Linux 发行版已不预装,需手动部署到 /usr/local/bin/wp。
准备:确认服务器有 PHP 8.1+ 与 php-cli 模块,当前用户能 sudo 或本身就是站点属主。不要使用 root 直接跑站点命令,应切到如 www-data 或部署用户。
安装命令如下,下载后赋权并做完整性校验:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --info --allow-root
若 wp --info 输出 PHP binary、WP-CLI version 2.11.0 且 OS 信息正常,安装成功。权限方面,站点根目录建议 chown -R deploy:www-data /var/www/site,目录 755、文件 644;wp-config.php 设 600。常见踩坑是 wp 找到的 PHP 版本与 Web 不同,导致扩展缺失,用 wp --info 里的 PHP binary 路径比对 which php。失败回退:直接 rm /usr/local/bin/wp 恢复无 CLI 状态,改用后台操作。
若团队多人维护同一批站点,权限模型要写进部署文档;我们在做 WordPress 企业网站开发交付时,会一并固化 CLI 用户与 sudo 规则,避免各人乱用 root。
更新与搜索替换
更新核心、插件、主题不必进后台。先备份数据库再跑更新,避免 2026 年部分老插件不兼容 PHP 8.3 而白屏。
核心与扩展更新
命令序列:
wp core update
wp core update-db
wp plugin update --all
wp theme update --all
wp core version
验证:wp core version 返回 6.8 或更高(2026 年主线),wp plugin list 中 Update 列为空。若某插件更新后前台 500,立刻 wp plugin deactivate plugin-slug 并 wp plugin install plugin-slug --version=旧版 --force 回滚。
搜索替换域名
获取报价
邮箱 + 需求 + 预算区间,24 小时内回复报价。
迁移域名时用 search-replace,它处理序列化数据,比直接 SQL 替换安全:
wp search-replace 'https://old.com' 'https://new.com' --all-tables --dry-run
wp search-replace 'https://old.com' 'https://new.com' --all-tables
wp option get home
先 --dry-run 看影响行数,再实跑。验证 wp option get home 与 wp option get siteurl 为新域名,前台登录正常。踩坑:没加 --all-tables 导致自定义表漏改;回退用更新前导出的 SQL 重导。
多站点场景替换规则更复杂,可参考 WordPress 多站点该不该用:场景与拆分方案里的表前缀说明。
数据库导出导入
用 WP-CLI 做数据库搬运,比 phpMyAdmin 更适合脚本化。
导出
准备:确认磁盘余量大于 wp db size 返回值。
wp db export /backup/site-2026-03.sql --add-drop-table
ls -lh /backup/site-2026-03.sql
验证文件大小非 0,且 grep 'CREATE TABLE' /backup/site-2026-03.sql | wc -l 与 wp db tables | wc -l 一致。
导入
在目标机先建空库,改好 wp-config.php 里 DB_NAME 等常量:
wp db create
wp db import /backup/site-2026-03.sql
wp db check
验证 wp db check 全 OK,wp user list 能列管理员。失败回退:导入前 wp db export 当前库为 rollback.sql,出错即 wp db import rollback.sql。踩坑是字符集不对导致乱码,导出时加 --default-character-set=utf8mb4。
正式迁移前应在隔离环境演练,做法见 给 WordPress 搭一套 Staging 环境:不碰线上数据做试验,能显著降低导入事故。
计划任务与缓存清理
WP-Cron 依赖访问触发,负载高时会漏跑;用真实系统 cron 接管是标准做法。
系统 cron 接管
先在 wp-config.php 加 define('DISABLE_WP_CRON', true);,然后加系统任务:
*/5 * * * * deploy cd /var/www/site && wp cron event run --due-now >> /var/log/wp-cron.log 2>&1
验证:等 10 分钟看日志有无执行记录,或 wp cron event list 里 due 时间被刷新。回退:注释常量与 crontab 行即恢复默认。
缓存与瞬态清理
清对象缓存、重写规则与过期瞬态:
wp cache flush
wp rewrite flush
wp transient delete --expired
wp option get rewrite_rules
验证 wp cache flush 返回 Success,前台改版后链接 404 消失。踩坑:开了 Redis 时 wp cache flush 只清 WP 层,还需 redis-cli flushdb;误清可重启缓存服务并从持久层恢复。
若站点前面挂了 CDN,清完本地还要清边缘节点,规则参考 WordPress 接 CDN:缓存规则、回源与清缓存策略。
实施步骤流程

- 准备:安装 WP-CLI 2.11.x,确认 PHP 版本、运行用户与目录权限。
- 备份:执行
wp db export得到回滚 SQL,记录当前版本号。 - 执行:按更新、搜索替换、导入导出、cron 与缓存顺序跑命令。
- 验证:用
wp core version、wp option get、wp db check核对结果。 - 回滚:任一环节异常,用备份 SQL 或降级重装恢复。
- 收尾:清理临时文件,把命令写入团队 runbook。
常见问题
WP-CLI 提示 Could not open input file 怎么办?
说明当前目录不在 WordPress 根目录或 wp-config.php 缺失,先 cd 到正确路径,或用 --path=/var/www/site 指定。
search-replace 把邮箱也改了怎么回退?
用 --dry-run 可预览;已误改则导入操作前 wp db export 的备份文件重导即可。
cron 不跑是不是 WP-CLI 没装好?
不是,检查 DISABLE_WP_CRON 常量与系统 crontab 是否生效,用 wp cron event run --due-now 手动触发看日志。
动作清单
- 今天就在预发机装好 wp-cli.phar 并跑通
wp --info。 - 把常用命令写成
deploy.sh,含 export 与 dry-run。 - 为所有站点配置系统 cron 接管 WP-Cron。
- 在 runbook 里记录回滚 SQL 路径与
wp db import命令。 - 每月用
wp core check-update巡检一次。
需要把整套 WP-CLI 运维流程落地到你的项目?了解我们的 WordPress 开发服务,或看更多技术文章。
