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

Docker部署PHP应用遇0.0.0.0无数据返回问题求助

解决Docker部署PHP应用访问无数据的问题

结合你给出的docker-compose.yml片段和遇到的“0.0.0.0 didn’t send any data”问题,我整理了几个核心修复方向,帮你定位解决:

1. 修正容器内的工作目录路径

你配置里的app和web服务用了宿主机本地路径(比如/Users/sr/Sites/zogo-commerce/public)作为working_dir,但容器内部并没有这个路径,必须替换为你挂载卷对应的容器内路径:

services:
  app:
    # ...其他配置
    working_dir: /var/www/zogo-commerce/public  # 改为容器内的挂载目标路径
  web:
    # ...其他配置
    working_dir: /var/www/zogo-commerce/public  # 同步修正为容器内路径

2. 暴露Web服务的端口映射

你的web服务没有配置端口映射,宿主机无法访问容器内的Web服务(比如Nginx/Apache的80端口),需要添加ports节点:

web:
  # ...其他配置
  ports:
    - "8080:80"  # 宿主机8080端口映射到容器80端口,访问时用http://localhost:8080

3. 修正数据库连接的Host配置

如果数据库运行在宿主机,容器内的127.0.0.1指向容器自身,无法连接到宿主机数据库,需要替换为宿主机局域网IP,或者Docker Desktop环境下用host.docker.internal:

app:
  environment:
    - "DB_HOST=host.docker.internal"  # 替换原有的127.0.0.1

如果是用Docker部署的数据库服务,直接用数据库服务的名称(比如db)作为DB_HOST即可,同一docker-compose网络下服务名可直接访问。

4. 确保Web服务能正确连接PHP-FPM

如果你的web是Nginx,需要在Nginx配置里把FastCGI请求转发到app服务的9000端口(同一Docker网络下可直接用服务名访问):

fastcgi_pass app:9000;  # 不要用127.0.0.1:9000

5. 查看容器日志定位细节

如果以上配置修正后仍有问题,查看容器日志能帮你找到具体错误(比如PHP启动失败、文件权限问题、数据库连接报错等):

# 查看app服务日志
docker-compose logs app
# 查看web服务日志
docker-compose logs web

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:44:14