2011-10-02 158 views

回答

12

如果你的PHP脚本的整个目标是运行另一个命令,为什么不只是运行其他命令直接?为什么在PHP中包装它?

如果你需要使用PHP由于某种原因(例如,不与其他实例ID比呼应出来的东西,你可以通过使用改进性能PHP内置的HTTP能力,而不是运行的另一个进程:

#!/usr/bin/php 
<?php 
$instance_id = file_get_contents("http://instance-data/latest/meta-data/instance-id"); 
echo $instance_id, "\n"; 
?> 
1

如果您可以通过命令行获取实例ID,则可以使用PHP的exec函数在PHP中获取后者的结果。当你得到结果时,只需回显它。

$instance_id = exec([your command here]); 
echo $instance_id; 

另外,读你链接到后门柱,你也可以这样来做:

$instance_id = file_get_contents(
    "http://169.254.169.254/latest/meta-data/instance-id"); 
echo $instance_id; 
0

可以使用了shell_exec来获得实例ID,如果你正在使用亚马逊的Linux AMI。

$instance_id = shell_exec('ec2-metadata --instance-id 2> /dev/null | cut -d " " -f 2'); 
// if its not set make it 0 
if (empty($instance_id)) { 
    $instance_id = 0; 
} 
echo $instance_id;