Docker部署后无法通过http://IP地址/test.php访问PHP文件求助
问题解决步骤
1. 修正Dockerfile中的核心错误
你的Dockerfile里存在两处致命路径错误,同时补充必要的配置:
FROM ubuntu ENV DEBIAN_FRONTEND noninteractive # 合并安装命令,减少镜像层数并清理缓存 RUN apt-get update -y && \ apt-get install apache2 php php-mysql -y && \ a2enmod php && \ apt-get clean && rm -rf /var/lib/apt/lists/* # 正确复制自定义目录配置文件到Apache模块目录 ADD dir.conf /etc/apache2/mods-enabled/dir.conf # 将test.php复制到Ubuntu系统Apache的默认网页根目录 ADD test.php /var/www/html/test.php # 使用Apache官方推荐的前台启动命令,避免容器启动后退出 CMD ["apache2-foreground"]
说明:
a2enmod php用于确保Apache启用PHP解析模块,否则PHP文件会被直接下载而非解析/var/www/html/是Ubuntu系统中Apache的默认网页根目录,只有将文件放在这里才能被外部访问- 合并RUN命令并清理apt缓存,能有效减小镜像体积
2. 确认目录结构正确性
确保你的文件目录和docker-compose的context配置匹配:
root/wordpress/ ├── docker-compose.yml └── code/ ├── Dockerfile ├── test.php └── dir.conf
3. 完善docker-compose配置(可选)
如果你的Dockerfile使用了非默认名称,需要在配置中明确指定;默认名称可省略该字段:
version: "3.9" services: web: ports: - "80:80" build: context: ./code dockerfile: Dockerfile
4. 重新构建并启动容器
执行以下命令完成部署:
cd /root/wordpress docker-compose up --build -d
5. 排查问题(若仍无法访问)
如果访问失败,通过容器日志定位错误:
docker-compose logs web
内容的提问来源于stack exchange,提问作者Haseeb Ch
相关产品推荐
相关产品推荐

