【问题标题】:Cannot execute aws cli command from exec or shell_exec within php无法从 php 中的 exec 或 shell_exec 执行 aws cli 命令
【发布时间】:2019-02-05 07:38:40
【问题描述】:

我在本地 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 上运行它吗?

【问题讨论】:

标签: php linux amazon-web-services ubuntu aws-cli


【解决方案1】:

我的代码一直在工作。问题是我必须在命令末尾使用 2>&1 将标准输出重定向到标准错误。

 $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);

【讨论】:

    猜你喜欢
    • 2020-04-20
    • 2014-11-25
    • 2021-03-04
    • 1970-01-01
    • 2016-03-01
    • 2014-03-23
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    相关资源
    最近更新 更多