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
相关产品推荐
相关产品推荐

