我在AWS弹性Beanstalk上设置Laravel Passport时遇到了问题。eb客户端已正确设置,可以部署代码更改,但是访问Laravel会显示错误500,并告诉我在“app/current/storage/oauth-public.key\”中缺少护照密钥。但在本地一切都正常运行。
我猜测我缺少artisan命令“php artisan passport:install”,因此我在composer文件中添加了它:
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"@php artisan passport:install"
]
但显然它没有创建密钥。
要么是在运行eb deploy之后未执行post-install hook,要么是有其他错误导致我无法创建密钥文件(缺少写入权限?)
如何验证是否执行了post-install hook? 有人遇到过类似的问题吗?
我按照此问题中的建议进行操作,但到目前为止还没有帮助: https://github.com/laravel/passport/issues/418
更新: 我通过ssh登录到应用程序并尝试手动运行php artisan passport:install,结果出现错误。我必须先对文件夹进行授权(sudo chmod -R 777 storage),然后才能运行成功。 不幸的是,每次运行eb deploy时,密钥都会被删除,因此我需要每次重新执行这些步骤 - 相当麻烦。有人发现自动化这个过程的好方法吗?