【问题标题】:Running gcloud command in php not working在 php 中运行 gcloud 命令不起作用
【发布时间】:2020-10-31 11:10:19
【问题描述】:

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

 <?PHP

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

 ?>

我得到的输出是

sh: 1: gcloud: not found

当我尝试做时

 shell_exec('ls -l')

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

【问题讨论】:

  • Cloud SDK CLI 是 Python 脚本,不是二进制可执行文件。您需要以gcloud 作为参数启动一个shell (sh/bash/csh/etc)。使用完整路径。使用此命令找出它在您的系统上的安装位置which -a gcloud
  • 你能给出一些示例命令吗?我对 bash 脚本的想法较少
  • 不,你不需要任何 shell 来运行 python 脚本
  • 你在哪里运行你的代码?在哪个产品上?
  • @guillaumeblaquiere 我在 Mac 中的 PHP 中运行我的代码并使用 Xampp 服务器

标签: php shell google-cloud-platform scripting gcloud


【解决方案1】:

您需要阅读文件/目录的 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'...

【讨论】:

  • 还是同样的错误..我尝试了哪个 gcloud 命令然后在这里使用了该路径..shell_exec('/Users/shivani/google-cloud-sdk/bin/gcloud --version'." 2> &1");
猜你喜欢
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
  • 2017-06-04
  • 2014-04-01
相关资源
最近更新 更多