You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Laravel应用至AWS Elastic Beanstalk时出现403 Forbidden错误

解决Laravel部署到AWS Elastic Beanstalk的403 Forbidden错误

从你的nginx错误日志可以看出,nginx尝试访问/var/www/html/的目录索引被禁止,核心原因是Laravel的入口文件index.php位于public子目录下,但当前nginx配置的web根目录没有指向public,也未正确指定默认索引文件。以下是具体解决步骤:

方法一:通过.ebextensions持久化修改nginx配置(推荐)

这种方式会在Elastic Beanstalk实例创建时自动应用配置,避免实例重启后丢失:

  1. 在你的Laravel项目根目录创建.ebextensions/nginx/conf.d目录结构
  2. 在该目录下新建laravel.conf文件,写入以下内容:
root /var/www/html/public;
index index.php index.html index.htm;
  1. 将.ebextensions目录和项目代码一起打包部署到Elastic Beanstalk

方法二:手动调整实例的nginx配置(临时生效,重启后需重新设置)

如果需要临时验证,可以登录到Elastic Beanstalk实例修改配置:

  1. 通过AWS控制台或SSH登录到你的EC2实例
  2. 编辑nginx的代理配置文件(Amazon Linux 2环境通常是/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf)
  3. 将root指令的值改为/var/www/html/public,并确保index包含index.php
  4. 重启nginx服务:sudo systemctl restart nginx

方法三:检查并修复文件权限

确保nginx进程有权限读取Laravel的public目录及文件:

  • 执行以下命令调整权限:
sudo chmod -R 755 /var/www/html/public
sudo chown -R nginx:nginx /var/www/html/public

(注:如果是Amazon Linux 1环境,用户组可能是apache,请根据实际环境调整)

完成以上操作后,重新访问你的应用URL,403错误应该会解决。

内容的提问来源于stack exchange,提问作者Rupam Kundu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 06:35:30