【发布时间】:2020-11-13 21:19:40
【问题描述】:
在多次无法通过 Beanstalk 正确部署我的 Laravel 应用程序后,我决定遵循基本的 AWS 教程,了解如何创建 Laravel 应用程序并将其部署到 Beanstack(以排除它的原因。)
它启动了,所以我在 routes/web.php 中添加了以下端点:
Route::get('/hello', function () {
return 'hi';
});
失败了。
然后我发现 Beanstalk 就在几个月前将其服务器从 Apache 切换到了 nginx! Laravel 教程中没有提到这一点,尽管这意味着两者在默认状态下不再兼容。
经过一番挖掘,我找到了另一个 AWS 教程的链接,该教程显然解决了这些问题:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html
解决方案看起来非常简单:创建一个自定义配置文件并将其存储在名为“.platform”(点平台)的 .ebextensions 目录中,该目录位于 app 目录中。
我在里面创建了一个名为 laravel.config 的自定义文件:
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
文件的路径是:
~/my-app/.platform/nginx/conf.d/elasticbeanstalk/
我重新部署了。 api还是不行……
我通过 SHH 连接到实例,发现 .platform 目录不存在。我想这是有道理的,因为它只在部署时使用......
【问题讨论】:
标签: laravel amazon-web-services amazon-elastic-beanstalk