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

Docker部署PHP项目浏览器显示空白页问题求助

排查Docker Compose下Nginx+PHP-FPM页面空白问题

针对你遇到的容器构建成功但页面空白的问题,可从以下几个方向排查:

1. 修正路径不一致问题

查看配置发现存在明显的路径冲突:

  • Web服务器容器(webserver-bclinic-v1)挂载本地./src到容器内/var/www,且Dockerfile中COPY本地src到/var/www
  • PHP应用容器(app-bclinic-v1)挂载本地./api到容器内/var/www,但Dockerfile中同样COPY本地src到/var/www

这会导致Nginx请求的文件路径和PHP-FPM实际处理的代码路径不匹配。解决方法:

  • 统一挂载目录:将app容器的volume改为./src:/var/www,保持和webserver一致
  • 或调整Nginx配置中的root路径,确保指向PHP代码所在的正确目录

2. 查看容器日志定位错误

直接查看日志能快速找到问题根源:

  • 查看Nginx日志:
    docker logs webserver-bclinic-v1
    
    若出现502 Bad Gateway,说明Nginx无法连接PHP-FPM;若出现404 Not Found,说明请求的文件不存在。
  • 查看PHP-FPM日志:
    docker logs app-bclinic-v1
    
    检查是否有代码语法错误、依赖缺失或权限报错。

3. 补全Composer依赖安装

app容器的Dockerfile中仅执行了RUN cd /var/www,未实际安装Composer依赖。缺少依赖会导致PHP代码无法运行,表现为页面空白。修改Dockerfile:
在RUN cd /var/www后添加:

RUN composer install --no-dev --optimize-autoloader

注意:构建时需确保本地src目录下存在composer.json和composer.lock文件。

4. 检查文件与目录权限

PHP-FPM以www-data用户运行,若代码目录权限不足,会导致无法读取文件:

  • 进入app容器检查权限:
    docker exec -it app-bclinic-v1 ls -l /var/www
    
  • 若权限异常,执行以下命令修复:
    docker exec -it app-bclinic-v1 chown -R www-data:www-data /var/www
    

5. 开启PHP错误显示

默认情况下PHP可能关闭了错误输出,导致页面空白但无提示。可临时开启:

  • 在PHP入口文件顶部添加:
    ini_set('display_errors', 1);
    ini_set('error_reporting', E_ALL);
    
  • 或修改php.ini中的配置,将display_errors设为On,error_reporting设为E_ALL。

6. 验证Nginx配置正确性

检查docker/nginx/default.conf中的PHP处理配置,确保:

  • fastcgi_pass指向PHP容器的服务名+端口:app-bclinic-v1:9000
  • SCRIPT_FILENAME参数正确:$document_root$fastcgi_script_name
  • root路径与PHP代码的入口目录一致(比如代码入口在/var/www/public,则root设为/var/www/public)

示例正确的PHP处理块:

location ~ \.php$ {
    root /var/www;
    fastcgi_pass app-bclinic-v1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:51:17