Windows下Docker部署PHP+NGINX+MYSQL遇配置提示及访问报错
问题修复方案
一、核心错误排查与修复
1. Nginx配置文件路径拼写错误(导致配置未生效)
你的Dockerfile_Nginix中COPY命令的目标路径少了字母x,导致配置文件无法正确放入Nginx的配置目录:
# 错误写法 COPY ./config/nginx/app.conf /etc/ngin/conf.d/app.conf
修正后:
FROM nginx:alpine COPY ./config/nginx/app.conf /etc/nginx/conf.d/app.conf COPY . /var/www
2. app.conf中try_files语法错误(导致异常404路径)
日志中open() "/var/www404" failed的错误,是因为try_files $uri = 404;里的空格让Nginx把= 404解析成了路径的一部分,正确写法需去掉空格:
location ~ \.php$ { try_files $uri =404; # 移除=与404之间的空格 fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass app:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; }
3. 项目根目录缺少入口文件(导致403 Forbidden)
日志中directory index of "/var/www/" is forbidden说明Nginx找不到默认入口文件,在项目根目录创建index.php文件,示例内容:
<?php phpinfo(); ?>
4. 关于default.conf不存在的提示
这是info级别的提示而非错误,原因是你通过volume挂载覆盖了Nginx默认的conf.d目录,原有的default.conf被替换。若要消除提示,可在./config/nginx/目录下创建一个空的default.conf文件,不处理也不影响功能。
二、验证步骤
- 停止并清理现有容器:
docker-compose down - 重新构建并启动服务:
docker-compose up --build - 访问
http://localhost:8080,应正常显示phpinfo页面,无403/404错误
内容的提问来源于stack exchange,提问作者Mo1
相关产品推荐
相关产品推荐

