我们可以使用shell_exec()命令从PHP运行shell命令。 当我尝试运行时从PHP运行gcloud命令
shell_exec('ls')
它给出文件和文件夹的列表。
我想使用shell_exec来获取Google云中的实例列表。
我使用
shell_exec('gcloud compute instances list')
它不会产生任何结果。当我在终端上运行相同的命令'gcloud compute instances list'时,它会显示项目下的所有实例。
任何人都可以请告诉我如何做到这一点?
尝试使用“执行”,并加入“2>&1”到命令的结尾看到被抛出什么样的错误。 我的猜测是这是一个使用命令行gcloud的身份验证问题。 –
它不会给出任何错误。当我从命令行尝试相同的命令时,它工作正常。当我尝试从PHP文件运行相同的命令时,它显示一个空白页面(没有错误)。 –
当我使用php运行命令行工具时,我得到 权限错误 - gcloud想要在我的webroot中编写一个.config文件夹。 “更正”更宽泛的设置权限。 身份验证失败 - gcloud需要使用gcloud身份验证登录进行登录,无法轻松地通过服务器端的无头呼叫完成。 我同意Jeffrey Rennie,你最好使用REST API。 –