安装 WP-CLI 的完整指南
已发表: 2022-03-16
WordPress 命令行界面 (WP-CLI) 是一个功能强大的 WordPress 开发人员专用工具。 在 Delicious Brains,我们使用它来帮助我们编写测试、管理对站点数据库的更改,我们甚至在 WP Migrate DB Pro 中支持 WP-CLI。 最后但同样重要的是,我们基于云的 WordPress 服务器控制面板 SpinupWP 大量使用 WP-CLI 来管理 WordPress 站点,因此它对我们来说是一个非常重要的工具。
我们非常喜欢它,我们认为每个 WordPress 开发人员都知道如何安装和使用它很重要。 这篇文章将介绍安装 WP-CLI 并设置它以使用这个神奇的工具有效地工作。
目录
- 什么是 WP-CLI?
- 如何在 macOS 和 Linux 上安装 WP-CLI
- 官方方法
- 使用包管理器安装 WP-CLI
- 使用 APT 安装 WP-CLI
- 使用 Homebrew 安装 WP-CLI
- 使用 Composer 安装 WP-CLI
- 使用 Docker 安装 WP-CLI
- 验证 WP-CLI 是否有效
- 如何在 Windows 上安装 WP-CLI
- 验证 WP-CLI 是否在 Windows 上工作
- 安装 WP-CLI 后
- 设置选项卡完成
- 创建 WP-CLI 配置文件
- 更新 WP-CLI
- 包起来
什么是 WP-CLI?
WP-CLI 是 WordPress 的命令行界面。 它允许您执行许多与 WordPress 站点上的管理面板相同的任务,但可以通过计算机或 Web 服务器上的命令行终端执行。 这使得它在开发期间和站点部署后都非常有用。 您可以使用 WP-CLI 安装 WordPress、配置多站点安装、更新插件和主题、更新 WordPress 本身等等。
一旦您对 WP-CLI 感到满意,您会发现这通常比通过 Web 浏览器做同样的事情要快(而且它让您在做这件事时看起来真的很酷)。
像 WP-CLI 这样的命令行工具也非常适合重复性任务,比如批量添加用户或定期检查更新。 这是因为 WP-CLI 很容易与其他命令行工具和实用程序(如 Bash 脚本和 cron 作业)结合使用。
人们将 WP-CLI 用于各种与 WordPress 相关的任务。 例如…
安装和激活插件:
$ wp plugin --activate advanced-custom-fields
添加用户:
$ wp user create erik [email protected] --role=subscriber
更新 WordPress 核心和数据库:
$ wp core update && wp core update-db
拍摄数据库快照:
$ wp db export /mnt/backups/$(date +%Y%m%d).sql
添加单个用户、运行一次性备份或使用命令行执行更新检查可能不会比使用管理页面更胜一筹。 但是,如果您要添加 500 个用户,或者想要在每天凌晨 3 点完成更新和备份,那么拥有一个命令行工具就变得非常方便。
我们将在以后的教程中深入探讨如何充分利用 WP-CLI,包括 Delicious Brains 团队多年来积累的提示、技巧和窍门。 但首先,让我们正确安装 WP-CLI。
如何安装 WP-CLI
这些说明适用于 Mac 和 Linux 用户。 单击此处跳转到在 Windows 上安装的说明。
官方方法
安装 WP-CLI 的推荐方法记录在 WP-CLI 站点上。 在 Mac 或 Linux 机器上安装 WP-CLI 需要 PHP 5.6 或更高版本,并且您必须安装 cURL 命令行工具。 打开终端并运行以下命令。
第一步是下载 Phar 构建:
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
接下来,您需要验证下载的文件:
$ php wp-cli.phar --info
最后,使其可执行并将其移动到您的 PATH 中:
$ chmod +x wp-cli.phar $ sudo mv wp-cli.phar /usr/local/bin/wp
使用包管理器安装 WP-CLI
WP-CLI 开发人员没有积极参与为众多包管理器维护包。 使用包管理器安装 WP-CLI 的选项会有所不同,具体取决于您使用的包管理器以及是否有志愿者介入并为其创建了包。
使用 APT 安装 WP-CLI
Tiago Hillebrandt 维护一个 PPA,用于在 Debian/Ubuntu 及其所有变体上安装 WP-CLI。 你可以像这样使用他的 PPA:
$ sudo add-apt-repository ppa:tiagohillebrandt/wp-cli $ sudo apt-get update $ sudo apt-get install wp-cli
使用 Homebrew 安装 WP-CLI
Homebrew 有一个用于 WP-CLI 的公式,因此只需运行以下命令:
$ brew install wp-cli
使用 Composer 安装 WP-CLI
您还可以使用 Composer 安装 WP-CLI。 虽然 Composer 最常见的用途是维护 PHP 项目中的依赖项,但它也可用于在您的机器上安装工具。 如果您绝对需要特定的 WP-CLI 版本,则可以仅为您当前的项目安装 WP-CLI。 一个项目很少需要最新版本以外的任何东西,所以我的建议是全局安装它。 很高兴 WP-CLI 在任何地方都可以轻松访问,并且它在我的项目中减少了开发依赖。 以下是全局安装它的方法:
$ composer global require wp-cli/wp-cli
此安装方法需要您将~/.composer/vendor/bin
添加到 PATH 变量中。 根据您使用的是 MacOS、Linux 还是 Windows,这会有所不同。 以下是一些使用 Bash 或 Zsh 的有用链接。
像这样全局安装 WP-CLI 后,您可以从计算机上的任何文件夹访问它。
通过 Docker 安装 WP-CLI
Docker 社区维护 WordPress 和 WP-CLI 图像。 您可以通过在docker compose
创建的yml
文件中将 CLI 变体指定为 WordPress 映像,在 Docker 项目中使用 WP-CLI 映像。
image: wordpress:cli
验证 WP-CLI 是否有效
无论您使用哪种安装方法,最好验证安装是否成功并且无论您碰巧在哪个目录中都可以访问 WP-CLI。要验证事情是否正常工作,您可以传递--info
范围:
$ wp --info
如果安装正确,您应该会看到如下内容:
操作系统:达尔文 20.6.0 达尔文内核版本 20.6.0:2021 年 11 月 10 日星期三 22:23:07 PST; 根:xnu-7195.141.14~1/RELEASE_X86_64 x86_64 外壳:/bin/zsh PHP 二进制文件:/usr/local/Cellar/[email protected]/7.4.27/bin/php PHP版本:7.4.27 使用的php.ini:/usr/local/etc/php/7.4/php.ini MySQL 二进制文件:/usr/local/bin/mysql MySQL 版本: mysql Ver 8.0.28 for x86_64 (Homebrew) 上的 macos11.6 SQL模式: WP-CLI 根目录:phar://wp-cli.phar/vendor/wp-cli/wp-cli WP-CLI 供应商目录:phar://wp-cli.phar/vendor WP_CLI phar 路径:/usr/local/bin WP-CLI 软件包目录: WP-CLI 全局配置: WP-CLI 项目配置: WP-CLI 版本:2.6.0
如何在 Windows 上安装 WP-CLI
在本机 Windows 上安装 WP-CLI 与在 Mac 或 Linux 机器上安装略有不同。 在我们开始之前,使用微软几年前推出的适用于 Linux 的 Windows 子系统,您应该能够使用上面的 MacOS 和 Linux 说明进行安装。 如果您希望它在本机 Windows 下工作,以下步骤适合您。
请注意,WP-CLI 首先是为基于 *nix 的系统而设计的。 某些功能,例如通过 SSH 访问远程 WordPress 站点,可能需要您跳过很多环节。 其他功能可能根本不起作用。 但是可以在 Windows 机器上安装和运行 WP-CLI 的基本安装。
请注意,您的 Windows 用户帐户必须具有管理员权限才能执行这些步骤。 如果您没有管理员权限,则需要请有权限的人授予您管理员权限或帮助您完成这些步骤。
视窗要求
要开始在 Windows 上安装 WordPress 命令行,唯一真正的要求是您安装了适用于 Windows 的命令行 PHP 并将其添加到您的 PATH 中,以便您可以在任何工作目录中从命令行运行 PHP。 安装 WP-CLI 的最简单方法是使用 cURL。 大多数 Windows 安装已经安装了 cURL,因为它自 2018 年以来就包含在 Windows 10 中。
今天,我们庆祝 Windows 10 与操作系统捆绑交付 curl 整整 4 年。
——丹尼尔·斯坦伯格 (@bagder) 2022 年 3 月 1 日
如果您的计算机上还没有它,我强烈建议您使用这些建议的方法之一安装它,或者在继续之前从 cURL 主页下载它。
下载并安装
首先,您需要从 GitHub 下载最新版本的 wp-cli.phar 到本地文件夹中。 如果您安装了 cURL,您可以使用三个命令来执行此操作:
C:\> mkdir C:\wp-cli C:\> cd C:\wp-cli C:\> curl -O https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
如果您没有 cURL 并且无法安装它,您也可以在 Windows 文件资源管理器中手动创建C:\wp-cli
文件夹,使用上面的链接下载文件,然后将其移动到该文件夹。
下载文件后,最好通过键入以下内容来确认它是否有效:
C:> php C:\wp-cli\wp-cli.phar --info
您应该看到几行总结了您的本地 WP-CLI 环境。
每次运行 WP-CLI 命令时键入 phar 文件的完整路径会很快变老。 因此,为了让生活更轻松,我们将再执行两个步骤。 首先,我们将C:\wp-cli
文件夹永久添加到 PATH 环境变量中。 我更喜欢使用setx
命令来执行此操作。 您可以选择将其添加到您的环境或使用/m
开关将其添加给所有用户。

对于您的用户帐户的所有未来会话:
setx PATH "%PATH%;c:\wp-cli"
仅针对当前终端会话:
set PATH "%PATH%;c:\wp-cli"
或者对于所有未来的会话,对于系统上的所有用户:
setx PATH "%PATH%;c:\wp-cli" /m
如果这是您的本地开发机器,只需将路径添加到您自己的环境即可。 如果它是您可能会使用 WP-CLI 安排夜间作业的服务器,最好将其添加到所有用户的环境中。 使用带有/m
开关的setx
需要您打开具有完全管理权限的 CMD 终端。 最简单的方法是在开始菜单上搜索cmd.exe
,右键单击它,然后选择以管理员身份运行以打开它:
最后,我们在 WP-CLI 文件夹中创建一个名为wp.bat
的 windows 批处理文件,内容如下:
@ECHO OFF php "c:\wp-cli\wp-cli.phar" %*
这个.bat
文件将使您能够使用较短的wp
调用运行 WP-CLI,而不是总是输入 phar 文件的全名。 它为您节省了大量的打字,这也是在 Mac 和 Linux 上调用 WP-CLI 的方式。
验证 WP-CLI 是否在 Windows 上工作
完成上述所有操作后,我们现在应该能够从任何文件夹运行 WP-CLI:
C:\> wp --info
如果安装正确,您应该会看到如下内容:
操作系统:Windows NT 10.0 build 19043 (Windows 10) AMD64 外壳:C:\WINDOWS\system32\cmd.exe PHP 二进制文件:C:\php\php.exe PHP版本:7.4.27 php.ini 使用: MySQL二进制文件: MySQL版本: SQL模式: WP-CLI 根目录:phar://wp-cli.phar/vendor/wp-cli/wp-cli WP-CLI 供应商目录:phar://wp-cli.phar/vendor WP_CLI phar 路径:C:\wp-cli WP-CLI 软件包目录: WP-CLI 全局配置: WP-CLI 项目配置: WP-CLI 版本:2.6.0
安装 WP-CLI 后
一旦你启动并运行了 WP-CLI 并确认它可以工作,就该进行一些初始设置了。 WP-CLI 的核心概念之一是可以有子commands
的subcommands
。 这些命令和子命令中的每一个都可以有一堆可选的开关。 有时您最终可能会键入很长的命令字符串。 就在前几天,我需要在 WordPress 选项中插入一个数组元素,命令最终如下所示:
$ wp --path=www/testing option patch insert tantan_wordpress_s3 post_meta_version 7
一旦你熟悉了 WP-CLI,你无疑会背诵很多这些命令。 但是,如果这看起来比你平时喜欢做的打字要多,那么让我向你展示一些你可以做的事情,以使其不那么令人生畏,并且更有可能在第一次尝试时正确。
设置选项卡完成
我们要做的第一件事是启用 Tab 补全,这是 shell 中的机制,当您按下TAB
键时,它会自动建议您接下来应该键入的内容。 在我的环境中,我只需键入上面该命令的开头即可查看有哪些子命令:
$ wp option [TAB] add delete get list patch pluck update
设置制表符补全太容易了,但它有助于了解您正在使用哪个命令行 shell。 如果您不确定,让我通过检查 $SHELL 环境变量快速向您展示如何做到这一点:
# On older MacOS and on most Linux boxes, we should see /bin/bash $ echo $SHELL /bin/bash # On newer MacOS boxes, we should see /bin/zsh $ echo $SHELL /bin/zsh # Check for Oh My Zsh $ omz Usage: omz <command> [options] Available commands: help Print this help message changelog Print the changelog plugin <command> Manage plugins pr <command> Manage Oh My Zsh Pull Requests reload Reload the current zsh session theme <command> Manage themes update Update Oh My Zsh version Show the version
如果您使用的是 Oh My Zsh,这是有史以来最简单的事情。 只需键入以下命令:
$ omz plugin enable wp-cli omz::plugin::enable: plugins enabled: wp-cli.
如果您使用的是直接 Bash 或 Zsh,则只需几个步骤即可下载脚本并将其添加到您的环境中。 首先,切换到您的主文件夹并下载 WP-CLI 2.6.0 版的脚本:
$ cd ~/ $ curl -O https://raw.githubusercontent.com/wp-cli/wp-cli/v2.6.0/utils/wp-completion.bash
接下来,将其添加到您的个人资料并重新加载。 Bash 用户可以使用以下命令:
$ echo "source ~/wp-completion.bash" >> ~/.bash_profile $ source ~/.bash_profile
然而,Zsh 用户应该使用这些:
$ echo "source ~/wp-completion.bash" >> ~/.zshenv $ source ~/.zshenv
在 Linux 系统上,您不需要从~/.bash_profile
中获取wp-completion.bash
,而是需要从~/.bashrc
中获取。 确保wp-completion.bash
文件位于您的主目录中,然后从主目录运行以下命令:
cat wp-completion.bash >> .bashrc source .bashrc
虽然 Windows 在某种程度上也存在选项卡补全功能,但据我所知,它不可能像 Mac 或 Linux 上那样与第三方工具(如 WP-CLI)集成。 如果您知道在 Windows 上添加 WP-CLI 选项卡完成的方法,请在下面的评论中联系。
创建 WP-CLI 配置文件
一旦我安装了工作的 WP-CLI,我总是做的下一件事是将配置文件添加到我的$HOME
文件夹中。 配置文件是一个相当高级的主题,具有许多有趣的功能,可能需要一篇完全独立的文章。 准备好基本配置文件是减少重复输入的好方法。
如果没有配置文件,WP-CLI 将假定您的工作目录与实际 WordPress 站点的wp-config.php
文件相同。 很多时候你不会在那个目录中。 例如,每次打开终端时,您通常都会在$HOME
文件夹中。 幸运的是,您可以向 WP-CLI 提供--path
参数以使其在正确的文件夹中查找:
$ wp --path=/Users/eriktorsner/src/path/to/wordpress plugin list
正如您可以想象的那样,每次都输入初始路径变量很快就会变得相当乏味。 要减少输入量,您可以添加 WP-CLI 将用于获取path
和其他重要参数的配置文件。
要创建此文件,请打开您喜欢的文本编辑器并在您的主目录中创建一个名为wp-cli.yml
的文件。 添加以下行:
path: /Users/eriktorsner/src/path/to/wordpress
您需要调整该路径,使其与您拥有或计划放置的本地 WordPress 安装位置相匹配。 有了这个文件,WP-CLI 将自动知道在哪里寻找 WordPress 安装,因此您不必每次都输入它。
每次运行 WP-CLI 命令时,它都会查找要使用的配置文件。 有几个放置配置文件的潜在位置,并且有一个特定的优先级来确定选择哪个配置文件,从最高到最低优先级:
- 当前工作目录或以上目录中名为
wp-cli.local.yml
的文件 - 当前工作目录或以上目录中名为
wp-cli.yml
的文件 $HOME
文件夹中名为wp-cli.yml
的文件
请注意,“或向上”意味着,假设您在 WordPress 安装的根目录中保留了一个配置文件,WP-CLI 仍然能够找到您是否已将自己放入子目录,例如wp-content/uploads/year/month
。 还值得知道的是,如果要将配置文件放在主文件夹以外的位置,则始终可以使用WP_CLI_CONFIG_PATH
环境变量指定位置。
您通过 typed 命令提供的任何参数都将覆盖从配置文件中获取的值,这使得在需要时可以轻松地覆盖配置文件中的值。
本节只是简单介绍了 WP-CLI 配置文件的实用性。 在以后的文章中,我计划更深入地挖掘并向您展示我如何使用它们来管理我的本地 WordPress 开发环境。
更新 WP-CLI
WP-CLI 具有自我更新的能力。 如果您使用推荐的方法安装了 WP-CLI,您可以使用update
子命令对其进行更新:
$ sudo wp cli update
在您的本地开发环境中,您可能想尝试 WP-CLI 的最新和最强大的功能并使用夜间构建(但请避免在生产服务器上这样做):
$ sudo wp cli update --nightly
如果您使用包管理器安装 WP-CLI,则应始终使用包管理器机制进行更新。 直接更新几乎肯定会起作用,但我不建议这样做。 您将剥夺包管理器了解当前安装的版本的机会。 这从来都不是一件好事。 选择安装方法后,我建议您也坚持使用它进行更新。
包起来
如果您已经按照这篇文章进行了操作,那么您现在应该已经安装了 WP-CLI 的工作安装,其中包含选项卡完成和基本配置文件。 我们将在以后的文章中深入研究插件管理,开始研究如何使用这个工具完成工作。
同时,您可能想阅读我们关于我们离不开的 WP-CLI 包的文章,或者我们关于使用脚本自动设置本地 WordPress 站点的系列文章。
如果您对如何安装 WP-CLI 有任何疑问,请随时在下面的评论中告诉我。