在Laravel Elastic BeanStalk上的404

问题描述 投票:1回答:1

我想把一个Laravel 7的应用部署到Elastic BeanStalk上,但是在路由上遇到了一些问题。

目前, 唯一可见的页面是主页, 而其他页面如登录, 注册和其他页面都显示404。

这里是来自eb的日志。

20200501 14:19:30 [错误] 4091#0: *4 open() "varwwwhtmlpubliclogin" failed (2: No such file or directory), client: 82.4.194.3, server: ,请求:"GET login HTTP1.1 "GET登录HTTP1.1"

https:/www.youtube.comwatch?v=ISVaMijczKc

laravel routes amazon-elastic-beanstalk http-status-code-404
1个回答
2
投票

经过几次尝试,我已经把它启动并运行了。我已经删除了应用程序,并使用EB CLI再次创建它。

我创建了一个环境配置,并把它放在 .ebextentions 我加了 AllowOverride All

以下是我的内容 01-environment.config

option_settings:
 aws:elasticbeanstalk:container:php:phpini:
   document_root: /public
   composer_options: --no-dev
 aws:elasticbeanstalk:application:environment:
   APP_ENV: production
   APP_KEY: base64:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

和我 .htaccess 档案

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]
    AllowOverride All
    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

1
投票

我想你使用的是Beanstalk PHP平台的 Linux第2版这个版本使用Nginx(而之前的版本使用Apache)。

你可以在官方文档中看到更多细节。https:/docs.aws.amazon.comelasticbeanstalklatestplatformsplatforms-supported.html#platforms-supported.PHP。

在这种情况下, 你必须按照Laravel文档中的描述来配置Nginx重定向: https:/laravel.comdocs7.xdeployment#nginx

只需创建文件 .platform/nginx/conf.d/elasticbeanstalk/laravel.conf 在你的项目根目录下)。

location / {
  try_files $uri $uri/ /index.php?$query_string;
}

你可以根据自己的需要添加其他配置。

你会在这里找到更多关于扩展平台的细节。https:/docs.aws.amazon.comelasticbeanstalklatestdgplatforms-linux-extend.html。

© www.soinside.com 2019 - 2024. All rights reserved.