Wp-CLI共享

默认情况下,WP-CLI 将已安装的软件包放在 中,这是用户主目录的隐藏子目录。~/.wp-cli/packages/

因为每个用户的主目录都不同,这自然意味着每个系统用户都有一个单独的已安装软件包目录。如果您在服务器上有多个活动的 shell 用户,并希望在他们之间共享已安装的 WP-CLI 包,则有几种受支持的方法可以执行此操作。

WP_CLI_PACKAGES_DIR环境变量

要覆盖 WP-CLI 用于已安装软件包的目录,请提供环境变量。如果您希望多个用户共享相同的包目录,只需为每个用户提供相同的环境变量即可。WP_CLI_PACKAGES_DIR``WP_CLI_PACKAGES_DIR

vim /etc/environment
export WP_CLI_PACKAGES_DIR=/usr/local/lib/wp-cli-packages

同样,您可以确保目录只能由特定用户写入,以使包可供所有用户使用,但只能由特定用户安装。

值得注意的是,环境变量_覆盖_了WP-CLI加载安装在用户主目录中的包的默认行为。如果要同时支持这两种方法,则需要采用第二种方法。WP_CLI_PACKAGES_DIR

共享目录中的作曲家项目

WP-CLI 已安装的软件包目录只是一个幕后的作曲家项目。鉴于此体系结构,您可以在任意目录中创建自己的 Composer 项目,并使用 WP-CLI 的标志将其加载到范围内。--require=<path>

首先,创建您的作曲家项目。

$ mkdir /usr/local/lib/wp-cli-packages
$ cd /usr/local/lib/wp-cli-packages
$ composer init -n --name=runcommand/wp-cli-packages -s=dev --repository=https://wp-cli.org/package-index/
$ composer require runcommand/hook
Using version dev-master for runcommand/hook
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing runcommand/hook (dev-master 7a7beae)
    Cloning 7a7beae2013eeea243cc44524a7c5c21da11979e

Writing lock file
Generating autoload files

现在,一旦您的 Composer 项目具有一两个依赖项,您就可以使用(或等效语句)将包加载到 WP-CLI 中。wp --require=<path/to/autoload>``config.yml