繁体   English   中英

无法从php中的exec或shell_exec执行aws cli命令

[英]Cannot execute aws cli command from exec or shell_exec within php

我在本地Ubuntu 18.04开发计算机上安装了aws cli。 例如,如果我输入以下内容,则可以从终端正常工作:

我得到的$which aws/usr/local/bin/aws 但是,如果我尝试从php脚本中运行此命令,则不会执行任何操作。

$cmd ="aws --version";

try {
    $exec = exec($cmd,$output, $return);
    $exec2 = shell_exec($cmd);
}
catch(Exception $e)
{
    echo 'Message: ' .$e->getMessage();
}

exec2返回null exec返回127。

现在,我了解到这是路径问题,并且我尝试将其添加到路径中,但是它不起作用。

我知道可以使用php sdk完成此操作,但由于种种原因,我无法使用它。

有人可以解释如何使用php在ubuntu 18.04上运行吗?

我的代码一直都在工作。 问题是我必须在命令末尾使用2>&1将stdout重定向到stderr。

 $cmd = "aws redshift restore-table-from-cluster-snapshot --cluster-identifier {$this->redshift_cluster_identifier} --snapshot-identifier {$this->snapshot_identifier} --source-database-name citnow --source-table-name {$tableName} --target-database-name citnow --new-table-name {$newTableName} 2>&1";
        $exec = exec($cmd,$output, $return);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM