【发布时间】:2019-02-27 16:19:43
【问题描述】:
我需要通过 php 执行 gcloud coumpute ssh --command(我稍后会检查安全性)。
无论我使用 exec、shell_exec 还是 Symfony 进程,命令都会崩溃:
Symfony 进程示例(exec 或 shell_exec 也是如此),简单的lscommand 用于测试:
$process = new Process("/path/to/google-cloud-sdk/bin/gcloud compute ssh my-instance --command='ls' ");
$process->run();
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo $process->getOutput();
if (!$process->isSuccessful()) {
}
我收到以下错误:
gcloud 崩溃 (AttributeError): 'NoneType' 对象没有属性 'split'
请注意,直接在 CLI 中复制粘贴的相同命令可以完美运行。
有什么提示吗?
【问题讨论】:
-
我认为不会这样做,ssh 到实例需要 ssh 密钥对、与元数据服务器的交互以及要安装和验证的 gcloud 命令。
-
Gcloud 已安装,并在系统范围内进行了身份验证。一切正常,直接在 CLI 中执行命令。 shell_exec 相同的命令失败。经过大量调试后,看起来 PATH env 是空的,带有 shell_exec。
标签: php google-api google-cloud-platform google-compute-engine shell-exec