我曾经执行过tinker
在以前的 Amazon AMI 上使用此命令:
sudo -E -u webapp php artisan tinker
现在我正在使用
PHP 7.4 on Amazon Linux 2
当我执行上述命令时,出现此错误:Unable to create PsySH runtime directory. Make sure PHP is able to write to /run/user/1000 in order to continue.
所以,为了测试,我给了这个文件夹的完全权限,然后再次执行我的命令:
sudo chmod 777 /run/user/1000
sudo -E -u webapp php artisan tinker
实际上,没有错误,但是环境变量如
RDS_PASSWORD
或 RDS_DB_NAME
未加载,因此无法执行数据库操作: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)'
我也试过
echo
来自 shell 的变量,我得到了相同的结果:sudo su webapp
sh-4.2$ echo $RDS_DB_NAME
# Empty here
最佳答案
它是 不在文档中 但环境变量在 /opt/elasticbeanstalk/deployment/env
所以你可以做这样的事情:
export $(sudo cat /opt/elasticbeanstalk/deployment/env) && sudo -E -u webapp php artisan tinker
还有,处理
PsySH
问题,只需创建一个 .psysh.php
包含该内容的源代码目录中的文件:<?php
return [
'runtimeDir' => './.psysh',
];
Psysh 将在没有任何权限问题的情况下使用该目录,因为
webapp
拥有它。
关于php - 来自 Amazon Linux 2 (Elastic Beanstalk) 的 Laravel artisan 修补匠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61816556/