运行 php 中的 gcloud 命令不工作

Running gcloud command in php not working

我正在尝试 运行 shell 来自 PHP 的命令使用

 <?PHP

 $output = shell_exec('gcloud --version'." 2>&1");
 echo "$output";

 ?>

我得到的输出是

sh: 1: gcloud: not found

当我尝试做的时候

 shell_exec('ls -l')

它按预期工作。我在 Whosebug 上有相关的帖子,使用 Rest API 代替。但是我用 gcloud 命令创建了一个大脚本。我正在 运行 在 mac 的终端中编写我的 shell 脚本。谁能帮我理解这个问题。可能需要安装sdk,试过还是一样的问题。

您需要仔细阅读 file/dir 的 Relative PathAbsolute Path

当您编码 shell_exec('gcloud --version'... 时,您使用的是 relative path。 解决您的问题的一种方法是指定 absolute pathgcloud 命令,该命令可以从 bash 命令行确定,方法是键入: which gcloud 你可能会得到这样的结果 /usr/lib/google-cloud-sdk/bin/gcloud

然后,将您的 PHP 代码更改为 shell_exec('/usr/lib/google-cloud-sdk/bin/gcloud --version'...