我的AWS凭据有问题.我使用了我在〜/ .aws/credentials上创建的凭证文件,就像它在AWS文档上编写一样.但是,apache无法读取它.
首先,我收到了这个错误:
从实例配置文件元数据服务器检索凭据时出错.如果您未在Amazon EC2内部运行,则在创建客户端或提供实例化的Aws\Common\Credentials CredentialsInterface对象时,必须在"密钥"和"机密"选项中提供AWS访问密钥ID和秘密访问密钥.
然后我尝试了一些我在互联网上找到的解决方案.例如,我试图检查我的HOME变量.这是/ home/ubuntu.我还尝试将我的凭证文件移动到/ var/www目录,即使它不是我的Web服务器目录.没有任何效果.我仍然得到同样的错误.
作为第二个解决方案,我看到我们可以直接调用CredentialsProvider并在客户端上指明目录.
https://forums.aws.amazon.com/thread.jspa?messageID=583216
错误已更改,但我无法正常工作:
无法从/.aws/credentials读取凭据
我还看到我们可以使用CredentialsProvider的默认提供程序而不是指示路径.
我试过,我一直得到同样的错误:
无法从/.aws/credentials读取凭据
万一你需要这些信息,我正在使用aws/aws-sdk-php(3.2.5).我正在尝试使用的服务是AWS Elastic Transcoder.我的EC2实例是一个Ubuntu 14.04.它运行使用Capifony部署的Symfony应用程序.
在我尝试这个生产服务器之前,我在一个开发服务器上尝试过,它只能与〜/ .aws/credentials文件一起工作.此开发服务器正是生产服务器的副本.但是,它不使用Capifony进行部署.它只是该项目的正常git克隆.它只有一个EBS卷,而生产服务器有一个用于操作系统,一个用于应用程序.
啊! 我还检查了两个服务器上凭据文件的权限/所有者是否相同,并且它们是相同的.我尝试了一个777,看它是否可以改变一些东西,但没有.
有人有想法吗?
credentials amazon-ec2 amazon-web-services amazon-elastic-transcoder