运行 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 Path
与 Absolute Path
。
当您编码 shell_exec('gcloud --version'...
时,您使用的是 relative path
。
解决您的问题的一种方法是指定 absolute path
到 gcloud
命令,该命令可以从 bash
命令行确定,方法是键入:
which gcloud
你可能会得到这样的结果
/usr/lib/google-cloud-sdk/bin/gcloud
然后,将您的 PHP 代码更改为 shell_exec('/usr/lib/google-cloud-sdk/bin/gcloud --version'...
我正在尝试 运行 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 Path
与 Absolute Path
。
当您编码 shell_exec('gcloud --version'...
时,您使用的是 relative path
。
解决您的问题的一种方法是指定 absolute path
到 gcloud
命令,该命令可以从 bash
命令行确定,方法是键入:
which gcloud
你可能会得到这样的结果
/usr/lib/google-cloud-sdk/bin/gcloud
然后,将您的 PHP 代码更改为 shell_exec('/usr/lib/google-cloud-sdk/bin/gcloud --version'...