Elastic Beanstalk部署Laravel文档根目录路径重复问题求助
解决方案
方案1:修正Document Root配置(无需修改管道)
报错显示路径重复/var/www/html/var/www/html/web/public,说明你在EB控制台设置的document-root用了绝对路径(带开头的/),导致EB默认根路径/var/www/html与你设置的路径叠加。
解决步骤:
- 进入Elastic Beanstalk控制台,找到目标环境,进入配置 > 软件
- 在Document root字段填写相对路径
web/public(不要带开头的/) - 保存配置并触发重新部署
如果控制台设置仍不生效,可通过.ebextensions强制修改nginx配置:
- 在仓库根目录创建
.ebextensions/nginx-root.config文件 - 写入以下内容:
files: "/etc/nginx/conf.d/elasticbeanstalk/00_application.conf": content: | server { listen 80; server_name localhost; root /var/www/html/web/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass php-fpm; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
- 提交代码到BitBucket,触发重新部署
方案2:修改BitBucket管道,仅部署Laravel根目录(推荐)
通过管道将仓库内的/web目录作为部署工件,使EB部署后/var/www/html直接成为Laravel根目录,此时只需将document-root设为public即可正常运行。
配置BitBucket Pipelines步骤:
- 在仓库根目录创建
bitbucket-pipelines.yml文件 - 写入以下配置(根据你的PHP版本、EB信息调整):
image: php:8.1-cli pipelines: branches: main: # 替换为你需要部署的分支名 - step: name: 打包Laravel代码 deployment: production script: - apt-get update && apt-get install -y zip # 进入web目录打包所有内容,确保解压后直接是Laravel根结构 - cd web && zip -r ../laravel-deploy.zip . artifacts: - laravel-deploy.zip - step: name: 部署到Elastic Beanstalk deployment: production script: - pipe: atlassian/aws-elasticbeanstalk-deploy:1.0.0 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: $AWS_REGION # 替换为你的EB区域,如us-east-1 APPLICATION_NAME: "你的EB应用名称" ENVIRONMENT_NAME: "你的EB环境名称" ZIP_FILE: "laravel-deploy.zip"
- 在BitBucket仓库设置 > 存储库变量中添加
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_REGION三个变量(需赋予EB部署权限) - 提交代码触发管道部署,之后回到EB控制台将Document root设置为
public,保存并重新部署
关于Full Clone的CodeBuild错误
切换Full Clone时的错误,是因为EB环境默认启用了CodeBuild作为构建工具,但你未配置对应CodeBuild项目。若使用方案2的BitBucket管道部署,无需开启Full Clone,保持默认快速部署即可;若必须使用Full Clone,需确保已创建并关联正确的CodeBuild项目,但这种方式无必要,推荐用方案2的管道部署更直接。
内容的提问来源于stack exchange,提问作者bfuzze
相关产品推荐
相关产品推荐

