Bash和PHP exec()中WP-CLI的不同输出

时间:2018-10-22 作者:Ali Sh

我已安装this package 在WP-CLI上。当我跑步时wp login create 在里面bash 它工作得很好,但是当我跑步的时候exec("wp login create") 在PHP脚本中WP-CLI 返回此错误:

错误:“login”不是已注册的wp命令。有关可用命令,请参阅“wp帮助”。

你是说“插件”吗?

我从中检查了用户exec("whoami") 这是一样的。我怎样才能找到问题?

EDIT

当我跑步时wp package list 在PHP中,它返回:

错误:Composer目录“/”。无法为程序包创建wp cli/程序包:mkdir():权限被拒绝

1 个回复
最合适的回答,由SO网友:Ali Sh 整理而成

根据Alain Schlesser 在wordpress slack中:

安装包的文件夹设置为使用服务器用户的主文件夹。但是,当您尝试从PHP执行此命令时,它是由Web服务器的用户执行的,该用户可能有不同的主文件夹,并且包没有安装在其中。

您可以将包作为系统的一部分手动加载(例如,需要在站点的Composer堆栈中加载),或者将包文件夹设置为用户和Web服务器共享的位置(然后重新安装)。

您可以使用WP_CLI_PACKAGES_DIR 环境变量:https://make.wordpress.org/cli/handbook/config/#environment-variables

结束