7 votes

Laravel artisan bricoleur depuis Amazon Linux 2 (Elastic Beanstalk)

J'avais l'habitude d'exécuter tinker sur l'AMI Amazon précédent en utilisant cette commande :

sudo -E -u webapp php artisan tinker

Maintenant, j'utilise PHP 7.4 on Amazon Linux 2 et lorsque j'exécute la commande ci-dessus, j'obtiens cette erreur :

Unable to create PsySH runtime directory. Make sure PHP is able to write to /run/user/1000 in order to continue.

Donc, afin de tester, j'ai donné la pleine permission à ce dossier et puis j'ai exécuté ma commande à nouveau :

sudo chmod 777 /run/user/1000
sudo -E -u webapp php artisan tinker

En fait, il n'y a pas d'erreur, mais les variables d'environnement telles que RDS_PASSWORD o RDS_DB_NAME ne sont pas chargés, ce qui rend impossible l'exécution des actions de la base de données :

Psy Shell v0.10.4 (PHP 7.4.4 — cli) by Justin Hileman
>>> env('RDS_DB_NAME')
 => null
>>> User::first()
 Illuminate/Database/QueryException with message 'SQLSTATE[HY000] [2002] Connection refused 
 (SQL: select * from `users` limit 1)'

J'ai aussi essayé de echo la variable à partir d'un shell, j'ai obtenu le même résultat :

sudo su webapp
sh-4.2$ echo $RDS_DB_NAME
  # Empty here

15voto

Claire Points 280

C'est pas sur la documentation mais les variables d'environnement sont dans /opt/elasticbeanstalk/deployment/env

Vous pouvez donc faire quelque chose comme ça :

export $(sudo cat /opt/elasticbeanstalk/deployment/env) && sudo -E -u webapp php artisan tinker

En outre, pour faire face à la PsySH il suffit de créer un .psysh.php dans votre répertoire de code source avec ce contenu :

<?php

return [
    'runtimeDir'    => './.psysh',
];

Psysh utilisera alors ce répertoire sans aucun problème de permission car webapp en est le propriétaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X