Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 两个EC2实例是否可以具有相同的$服务器[';服务器地址';]?或者如何在EC2中唯一地标识每一个?_Php_Amazon Web Services_Amazon - Fatal编程技术网

Php 两个EC2实例是否可以具有相同的$服务器[';服务器地址';]?或者如何在EC2中唯一地标识每一个?

Php 两个EC2实例是否可以具有相同的$服务器[';服务器地址';]?或者如何在EC2中唯一地标识每一个?,php,amazon-web-services,amazon,Php,Amazon Web Services,Amazon,我需要AWS上缩放组的每个EC2实例的唯一标识符作为uniqid()的前缀 我可以为此使用$\u SERVER['SERVER\u ADDR']吗?以下代码可以获取ec2实例的实例id: #!/usr/bin/php <?php $instance_id = file_get_contents("http://instance-data/latest/meta-data/instance-id"); echo $instance_id; ?> #/usr/bin/php 以下代码可

我需要AWS上缩放组的每个EC2实例的唯一标识符作为
uniqid()
的前缀


我可以为此使用
$\u SERVER['SERVER\u ADDR']
吗?

以下代码可以获取ec2实例的实例id:

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

以下代码可以获取ec2实例的实例id:

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

来自ec2元数据的实例ID是一个很好的答案,但将其值隐藏在环境中似乎是一个更干净的解决方案

无论您在设置中设置环境变量在哪里——在web服务器本身的启动脚本中(一个示例,不是普遍适用的,是
/etc/init.d/apache2
),都会获取值并将其存储在环境中

export EC2\u INSTANCE\u ID=$(ec2metadata——实例ID)
$\u ENV[“EC2\u INSTANCE\u ID”]
应该包含该值,这比将其缓存到文件中要简单得多,并且不受速率限制的约束(有文档记录为强制的,但未提及特定阈值)


请注意,以下三个获取实例ID的示例在功能上是等效的:

ec2metadata——实例id
卷曲http://instance-data/latest/meta-data/instance-id
卷曲http://169.254.169.254/latest/meta-data/instance-id

来自ec2元数据的实例ID是一个很好的答案,但将其值隐藏在环境中似乎是一个更干净的解决方案

无论您在设置中设置环境变量在哪里——在web服务器本身的启动脚本中(一个示例,不是普遍适用的,是
/etc/init.d/apache2
),都会获取值并将其存储在环境中

export EC2\u INSTANCE\u ID=$(ec2metadata——实例ID)
$\u ENV[“EC2\u INSTANCE\u ID”]
应该包含该值,这比将其缓存到文件中要简单得多,并且不受速率限制的约束(有文档记录为强制的,但未提及特定阈值)


请注意,以下三个获取实例ID的示例在功能上是等效的:

ec2metadata——实例id
卷曲http://instance-data/latest/meta-data/instance-id
卷曲http://169.254.169.254/latest/meta-data/instance-id

我考虑过元数据,但这不是有限制的吗?“我们根据每个实例限制对实例元数据服务的查询,并限制从实例到实例元数据服务的同时连接数。”那么,我是否可以将实例启动时的id写入到我在脚本中实现的php文件中呢?我对这个amazon服务非常陌生,但下面是我的建议。创建一个数据文件或数据库,并将此id添加到其中(如果尚未添加)?然后在需要时从数据源获取它?使用数据库会有点棘手-当您不知道唯一标识符时,如何检查是否已写入唯一标识符?但我也提出了本地文件解决方案。尝试包含server_id.php,当它不存在时,获取服务器id并使用该id创建server_id.php。我认为这可以完成这项工作。我考虑过元数据,但这个速率不受限制吗?“我们根据每个实例限制对实例元数据服务的查询,并限制从实例到实例元数据服务的同时连接数。“那么,我是否可以将实例启动时的id写入到我在脚本中实现的php文件中呢?我对amazon服务非常陌生,但我有一个建议。创建一个数据文件或数据库,并将此id添加到其中(如果尚未添加)?然后在需要时从数据源获取它?使用数据库会有点棘手-当您不知道唯一标识符时,如何检查是否已写入唯一标识符?但我也提出了本地文件解决方案。尝试包含server_id.php,当它不存在时,获取服务器id并使用该id创建server_id.php。我认为这可以完成工作。我非常喜欢这个解决方案。我从未使用过环境变量,但我一定会尝试。如果您现在还没有找到它,您可能会发现它很有用:。(PHP不是我的专长,所以我必须自己查找)。显然还有
getenv()
。我试图使用环境变量,但似乎不可能,请参阅我的帖子:如果是真的,那将是一个巨大的麻烦,但很难相信。至少,可能有一种方法可以告诉Apache让它通过。我得掸掉一些PHP,看看能找到什么。也许吧?我真的很喜欢这个解决方案。我从未使用过环境变量,但我一定会尝试。如果您现在还没有找到它,您可能会发现它很有用:。(PHP不是我的专长,所以我必须自己查找)。显然还有
getenv()
。我试图使用环境变量,但似乎不可能,请参阅我的帖子:如果是真的,那将是一个巨大的麻烦,但很难相信。至少,可能有一种方法可以告诉Apache让它通过。我得掸掉一些PHP,看看能找到什么。也许吧?