本文约 3,315 字,预计阅读 9 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:后台打不开时,命令行是最后的救命稻草
WordPress 后台用不了的场景比想象中多:改错主题 functions.php 白屏、插件冲突进不去后台、迁移后重定向循环、批量建站要重复点几十次。
这些时候,WP-CLI 是唯一不需要后台就能管理 WordPress 的方式。即使是日常运维,它的效率也远高于后台点击——装好一个站点只要四条命令。
原理分析:WP-CLI 是怎么操作 WordPress 的
WP-CLI 是一个 PHP 命令行程序。它做的事和浏览器请求后台一样:加载 WordPress 环境(读 wp-config.php → 连数据库 → 加载插件主题),然后执行你给的子命令。
所以有两个前提:
- 必须在 WordPress 根目录(或指定
--path)执行; - PHP CLI 版本要和 Web 端一致,否则行为可能有差异(
php -v确认)。
它的命令结构是:
wp <命令组> <子命令> [位置参数] [--选项=值]
常用命令组:core、config、db、plugin、theme、user、post、option、media、rewrite、cron。
保姆级实操
第一步:安装 WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --info
验证输出里有 PHP 版本、WP-CLI 版本即成功。若提示 php: command not found,先装 PHP CLI。
第二步:下载 WordPress 核心
cd /var/www/mimangfei.com
wp core download --locale=zh_CN --version=6.7
--locale=zh_CN直接下中文版,省去后台切语言;- 省略
--version则下最新稳定版。
第三步:生成 wp-config.php
wp config create \
--dbname=wordpress \
--dbuser=wpuser \
--dbpass='强密码' \
--dbhost=localhost \
--dbprefix=mmf_ \
--locale=zh_CN \
--extra-php <<'PHP'
define('WP_MEMORY_LIMIT', '256M');
define('WP_POST_REVISIONS', 5);
define('DISABLE_WP_CRON', true);
define('AUTOMATIC_UPDATER_DISABLED', true);
PHP
--extra-php 可以把自定义常量直接写进配置文件,非常实用。--dbprefix 一定要在建站时定好。
第四步:建库并安装
wp db create # 数据库不存在时创建
wp core install \
--url=https://mimangfei.com \
--title="迷芒飞" \
--admin_user=ufo_pf \
--admin_password='另一个强密码' \
--admin_email=you@example.com \
--skip-email
--skip-email 表示不发安装通知邮件(批量建站时很有用)。
第五步:收尾配置
wp rewrite structure '/%postname%/' # 固定链接
wp rewrite flush # 刷新重写规则
wp option update timezone_string 'Asia/Shanghai'
wp option update blogdescription '站点副标题'
wp plugin delete hello akismet # 删除自带插件
wp theme delete twentytwentythree twentytwentytwo # 删除多余主题
第六步:批量建站脚本(可选)
#!/usr/bin/env bash
set -euo pipefail
DOMAIN=$1
DIR="/var/www/$DOMAIN"
mkdir -p "$DIR" && cd "$DIR"
wp core download --locale=zh_CN
wp config create --dbname="${DOMAIN//./_}" --dbuser=wpuser --dbpass="$DBPASS" --dbprefix=wp_
wp db create
wp core install --url="https://$DOMAIN" --title="$DOMAIN" \
--admin_user="$ADMIN" --admin_password="$ADMINPASS" \
--admin_email="$ADMINMAIL" --skip-email
wp rewrite structure '/%postname%/' && wp rewrite flush
echo "站点 $DOMAIN 已就绪"
常见踩坑与失败案例
wp: command not found—— 没有移动到 PATH 目录,或/usr/local/bin不在 PATH 里。用which wp排查。Error: This does not seem to be a WordPress installation—— 当前目录不是 WordPress 根目录。加--path=/var/www/xxx指定。- 数据库创建失败
Access denied—— CLI 用的是wp-config.php里的账号,而该账号没有 CREATE 权限。用 root 手工建库后再wp core install。 - 以 root 执行警告 —— WP-CLI 会提示不推荐 root 运行,加
--allow-root可忽略,但生成的文件属主是 root,后续 Web 服务写不了。正确做法:sudo -u www-data wp ...。 - 案例:运维用 root 执行
wp core download,之后后台无法安装插件。原因是文件属主是 root,而 PHP-FPM 用www-data。修正:chown -R www-data:www-data /var/www/站点。 wp core install后前台 404 —— 忘了wp rewrite flush,或 Nginx 伪静态没配。
总结
WP-CLI 的四条核心命令 core download → config create → db create → core install 覆盖了建站全流程,熟练后两三分钟能起一个站点,而且整个过程可脚本化、可复现。建议把它作为标准运维工具:日常用来清缓存(wp cache flush)、重建缩略图(wp media regenerate)、改站点地址(wp option update home),尤其在后台进不去的时候,它是唯一可靠的入口。
