Laravel 部署时未执行AWS Beanstalk配置文件
在多次未能通过Beanstalk正确部署我的Laravel应用程序后,我决定遵循AWS的基本教程,了解如何创建Laravel应用程序并将其部署到Beanstack(以排除其原因) 它启动了,因此我在routes/web.php中添加了以下端点:Laravel 部署时未执行AWS Beanstalk配置文件,laravel,amazon-web-services,amazon-elastic-beanstalk,Laravel,Amazon Web Services,Amazon Elastic Beanstalk,在多次未能通过Beanstalk正确部署我的Laravel应用程序后,我决定遵循AWS的基本教程,了解如何创建Laravel应用程序并将其部署到Beanstack(以排除其原因) 它启动了,因此我在routes/web.php中添加了以下端点: Route::get('/hello', function () { return 'hi'; }); 它失败了 几个月前,我发现Beanstalk将其服务器从Apache切换到了nginx!在Laravel教程中没有提到这一点,尽管这意味着这
Route::get('/hello', function () {
return 'hi';
});
它失败了
几个月前,我发现Beanstalk将其服务器从Apache切换到了nginx!在Laravel教程中没有提到这一点,尽管这意味着这两者在默认状态下不再兼容
在做了一些挖掘之后,我找到了另一个AWS教程的链接,它显然解决了这些问题:
解决方案看起来非常简单:创建一个自定义配置文件并将其存储在名为“.platform”(点平台)的.ebextensions目录中,该目录将位于应用程序目录中
我创建了一个名为laravel.config的自定义文件,其中包含:
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
文件的路径为:
~/my-app/.platform/nginx/conf.d/elasticbeanstalk/
我重新部署了。api仍然不起作用
我通过SHH连接到该实例,并注意到.platform目录不在那里。我想这是有道理的,因为它只在部署时使用…一个明显的问题是对nginx配置文件使用了错误的扩展名 文件应该是
*.conf
,而不是*.config
,如中所示
您的.platform
文件夹被忽略的原因可能是您的.gitignore
或.ebignore
文件中可能有该文件夹
请注意,即使您修复了扩展名,配置本身也可能不正确,我无法验证。配置文件扩展名就是问题所在。非常感谢!!