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

为什么Docker运行Drupal镜像时服务器返回空响应?

问题根本原因

你使用的drupal:9.1-php7.4-fpm-alpine3.13为FPM版本镜像,这类镜像本身不内置HTTP服务器,仅提供PHP-FPM服务,默认监听9000端口的FastCGI协议,无法直接响应HTTP请求,因此映射80端口后访问会得到空响应。

解决方案

方案1:换用内置Apache的官方镜像(推荐,适合快速部署测试)

直接拉取带apache标识的Drupal镜像,镜像内置完整HTTP服务,可直接响应HTTP请求,运行命令如下:

docker run -p 8080:80 drupal:9.1-apache

运行成功后直接访问http://localhost:8080即可看到Drupal默认页面。

方案2:搭配Web服务器使用FPM版本镜像(适合生产环境部署)

如果必须使用FPM版本,需要额外部署Nginx或Apache作为Web前端,配置规则如下:

  • 启动Drupal FPM容器,无需映射80端口,可映射9000端口供Web服务器访问
  • 部署Web服务器容器,配置FastCGI代理规则转发PHP请求到Drupal容器的9000端口
  • 确保Web服务器和Drupal容器挂载了相同的站点根目录,保证静态资源可正常加载

验证方法

你可以执行以下命令查看当前运行的Drupal容器的端口监听情况,确认没有80端口监听:

# 先获取容器ID
docker ps
# 进入容器查看端口监听
docker exec -it 替换为你的容器ID ss -tuln

执行后可以看到仅9000端口处于监听状态,验证前面的原因判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:36:02