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

Docker环境下Symfony API Platform cURL请求返回502 Bad Gateway问题求助

502 Bad Gateway 问题排查方案

以下是按优先级排序的排查方向:

1. 确认PHP容器运行状态

  • 先查看容器是否正常启动:执行命令 docker ps | grep app1,如果容器未处于Up状态,直接查看容器启动日志定位问题:docker logs app1
  • 常见启动失败原因:你的Dockerfile中仅复制了composer.json/composer.lock,未执行composer install安装依赖,导致Laravel框架初始化失败,进而导致PHP-FPM启动异常

2. 验证PHP-FPM端口监听配置

默认PHP-FPM镜像可能配置为监听Unix套接字而非TCP 9000端口,会导致Nginx无法转发请求:

  • 进入PHP容器检查端口监听:docker exec -it app1 ss -tunlp | grep 9000
  • 如果无输出,需要修改php-fpm的www.conf配置,将listen参数修改为0.0.0.0:9000,重启容器后重试

3. 确认Nginx与PHP容器网络连通性

  • 进入Nginx容器测试连通性:docker exec -it webserver1 ping app1,如果无法连通,检查两个容器是否均加入app-network网络,可在docker-compose的webserver1配置中添加depends_on: [app1]保证PHP容器先启动
  • 测试端口连通性:docker exec -it webserver1 nc -zv app1 9000,如果端口不通,参考上一步检查PHP-FPM监听配置

4. 检查应用层配置异常

即使PHP-FPM正常运行,应用初始化失败也可能返回502错误:

  • 确认项目根目录下存在.env配置文件,数据库配置参数正确:DB_HOST=db1、DB_PORT=3306、DB_DATABASE=rest_api、DB_USERNAME=root、DB_PASSWORD=password
  • 检查目录权限:本地挂载的卷可能覆盖容器内的权限配置,执行docker exec -it app1 chmod -R 775 storage bootstrap/cache修正权限
  • 确认已执行Laravel初始化命令:php artisan key:generate、php artisan migrate

5. 查看日志定位具体问题

  • Nginx错误日志:执行docker logs webserver1,或进入容器查看/var/log/nginx/error.log,可直接明确是连接PHP失败还是应用返回异常
  • PHP错误日志:进入app1容器查看/var/log/php7.4-fpm.log
  • Laravel应用日志:查看项目目录下storage/logs/laravel.log定位应用层面报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:48:02