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

Laravel+Docker部署遇Nginx 502 Bad Gateway问题求助

解决Docker部署Laravel时Nginx 502 Bad Gateway错误

以下是针对问题的排查与解决步骤:

1. 检查PHP容器运行状态与连通性

  • 执行 docker-compose ps,确认php服务处于Up状态。若容器未启动,查看启动日志定位问题:docker-compose logs php
  • 进入Nginx容器测试与PHP服务的连通性:
    docker exec -it <你的nginx容器名称或ID> telnet php 9000
    
    若无法连接,确认Docker Compose默认网络是否正常(同一compose内的服务默认可通过服务名互通)。

2. 修复Laravel目录权限

Laravel需要storage和bootstrap/cache目录具备可写权限,进入PHP容器执行:

chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache
chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache

3. 验证Nginx根目录与文件存在性

  • 确认本地项目的public目录存在且包含index.php文件
  • 进入Nginx容器检查文件挂载是否正确:
    ls /var/www/html/public
    
    若文件不存在,检查docker-compose.yml中server服务的./:/var/www/html挂载路径(确保执行docker-compose up的目录是Laravel项目根目录)。

4. 安装Laravel项目依赖

进入PHP容器执行Composer安装依赖:

composer install

依赖未安装会导致PHP执行报错,进而触发Nginx 502错误。

5. 确认PHP-FPM监听配置

进入PHP容器检查PHP-FPM监听端口是否为9000:

cat /usr/local/etc/php-fpm.d/www.conf | grep listen

官方php:8.1.0-fpm镜像默认监听9000端口,若配置为socket路径(如listen = /run/php/php-fpm.sock),需修改Nginx配置中的fastcgi_pass为对应socket路径。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:24:54