Apache Run 命令行命令

Apache Run 命令行命令

我正在 Linux 上运行 Apache 的 Web 服务器。我尝试使用system()PHP 调用来使用 Amazon EC2 命令行工具(ec2-describe-instance等)。但是,它不起作用。网页不显示结果(其他命令如echo工作正常)。我的 PHP 代码如下所示:

<h1>Beginning System Call</h1>
<?php 
echo 'php started</br>'; 
echo exec("echo 'testing'; ec2-describe-addresses -O MY_AWS_ACCESS_KEY -W MY_AWS_SECRET_KEY");
?>

在此处输入图片描述

我尝试使用 Apache 用户来尝试该命令,得到的结果如下:

[ec2-user@ip-xx-xxx-xx-xxx ec2testing]$ sudo su apache
bash-4.1$ ec2-describe-addresses
bash: ec2-describe-addresses: command not found

对于 Apache 用户来说,这些命令似乎尚未“安装”。

我尝试使用这篇博文,但它仍然不起作用。

我是否遗漏了什么?

编辑:使用这个:

echo exec("echo 'testing'; sudo ec2-describe-addresses -O (Access Key Removed) -W (Secret Key Removed)");

给了我这个:

bash-4.1$ php index.php
<h1>Beginning System Call</h1>
php started</br>[sudo] password for apache: 

答案1

在脚本中添加完整路径:

echo exec("echo 'testing'; sudo /opt/aws/apitools/ec2/bin/ec2-describe-addresses -O (Access Key Removed) -W (Secret Key Removed)");

答案2

PATH 变量未设置ec2-describe-addresses

所以你有两个选择

选项1

使用以下方式设置 PATH

export PATH=$PATH:/opt/aws/apitools/ec2/bin/

选项2

使用绝对路径运行命令/opt/aws/apitools/ec2/bin/ec2-describe-addresses

相关内容