搜索全站
安装部署 9 分钟阅读

WP-CLI 命令行安装 WordPress 教程:三步装好一个站点

用 WP-CLI 可以不用打开浏览器就装好 WordPress。本文从安装 WP-CLI 开始,讲清 core download、config create、db create、core install 四条命令的参数含义与组合用法,并给出批量建站脚本、常见报错(找不到命令、数据库拒绝、权限问题)的排查方法。

U
UFO_PF 2020-08-03 · 阅读 9 分钟
WP 安装部署
阅读提示
本文约 3,315 字,预计阅读 9 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:后台打不开时,命令行是最后的救命稻草

WordPress 后台用不了的场景比想象中多:改错主题 functions.php 白屏、插件冲突进不去后台、迁移后重定向循环、批量建站要重复点几十次。

这些时候,WP-CLI 是唯一不需要后台就能管理 WordPress 的方式。即使是日常运维,它的效率也远高于后台点击——装好一个站点只要四条命令。

原理分析:WP-CLI 是怎么操作 WordPress 的

WP-CLI 是一个 PHP 命令行程序。它做的事和浏览器请求后台一样:加载 WordPress 环境(读 wp-config.php → 连数据库 → 加载插件主题),然后执行你给的子命令。

所以有两个前提:

  1. 必须在 WordPress 根目录(或指定 --path)执行;
  2. 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 已就绪"

常见踩坑与失败案例

  1. wp: command not found —— 没有移动到 PATH 目录,或 /usr/local/bin 不在 PATH 里。用 which wp 排查。
  2. Error: This does not seem to be a WordPress installation —— 当前目录不是 WordPress 根目录。加 --path=/var/www/xxx 指定。
  3. 数据库创建失败 Access denied —— CLI 用的是 wp-config.php 里的账号,而该账号没有 CREATE 权限。用 root 手工建库后再 wp core install。
  4. 以 root 执行警告 —— WP-CLI 会提示不推荐 root 运行,加 --allow-root 可忽略,但生成的文件属主是 root,后续 Web 服务写不了。正确做法:sudo -u www-data wp ...。
  5. 案例:运维用 root 执行 wp core download,之后后台无法安装插件。原因是文件属主是 root,而 PHP-FPM 用 www-data。修正:chown -R www-data:www-data /var/www/站点。
  6. 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),尤其在后台进不去的时候,它是唯一可靠的入口。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。