Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

390
Views
No se pueden leer las credenciales de /.aws/credentials: el script PHP llama a AWS-SDK

Revisé todas las respuestas aquí y parece que mi problema es un poco diferente o no ha habido una solución adecuada. Estoy haciendo lo siguiente en mi archivo PHP:

 use Aws\Route53\Route53Client; $client = Route53Client::factory(array( 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2013-04-01' ));

Obteniendo este error:

 Fatal error: Uncaught Aws\Exception\CredentialsException: Cannot read credentials from /.aws/credentials

Parece que la solución fácil sería asegurarse de que el directorio HOME sea el correcto. Efectivamente ya lo es. Los archivos son legibles y mi usuario ec2 ya es el propietario. Key and Secret ya está instalado en el archivo de 'credenciales'. El nombre del perfil ya está configurado como 'predeterminado'. Intenté copiar /.aws a otros directorios como la raíz, /home, etc. y cambié los permisos, chmod, todo lo anterior. Aún nada.

Luego traté de codificar las credenciales (lo sé, no se recomienda) solo para darle una pequeña patada, e ignora por completo que hice esto:

 $client = Route53Client::factory(array( 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2013-04-01', 'credentials' => [ 'key' => $key, 'secret' => $secret, ] ));

Como último recurso, incluso intenté incluir la clase CredentialProvider y pasar esto a mi matriz, todavía nada:

 'credentials' => CredentialProvider::ini('default', '/home/ec2-user/.aws/credentials'),

¿Qué diablos estoy haciendo mal?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Simplemente elimine 'profile' => 'default' , y debería funcionar bien

 $client = Route53Client::factory(array( 'region' => 'us-east-1', 'version' => 'latest', 'credentials' => [ 'key' => $key, 'secret' => $secret, ] ));
over 4 years ago · Santiago Trujillo Report

0

Al ejecutar en AWS Centos 7, probé todo (chmod/chown /root /home/user, env, bashrc, etc.) para que /.aws/credentials funcione fuera del directorio apache /var/www. El SDK informó que no pudo leer el archivo de credenciales.

Miré PHP para ver si podía configurar/anular la variable HOME y aún no leyó el archivo de credenciales hasta que coloqué la carpeta .aws en la carpeta '/var/www' y configuré la variable HOME en mi archivo php como asi que:

 <%php putenv('HOME=/var/www'); //ZIP File SDK Install requires aws-autoloader require 'aws-autoloader.php'; //Your php code below
over 4 years ago · Santiago Trujillo Report

0

Esto es lo que terminé haciendo para esta pregunta, aunque la respuesta anterior de EJ es en realidad la respuesta correcta. Esperemos que esto ayude a alguien a leer su archivo de credenciales:

 use Aws\Credentials\CredentialProvider; use Aws\Route53\Route53Client; $profile = 'default'; $path = '/var/www/html/.aws/credentials'; $provider = CredentialProvider::ini($profile, $path); $provider = CredentialProvider::memoize($provider); $client = Route53Client::factory(array( 'region' => 'us-east-1', 'version' => '2013-04-01', 'credentials' => $provider ));
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!