docker 配置 nginx + php 报 404

# docker 配置 nginx + php 报 404 > 大多问题是出现在 nginx 配置上,这里记录下遇到的坑。 # docker-compose.yml 配置: ``` version: "3" services: nginx: image: nginx:latest ports: - 1414:80 volumes: - D://work/own/mynginx/web:/usr/share/nginx/html - D://work/own/mynginx/conf:/etc/nginx/conf.d depends_on: - php74 php74: image: php:7.4-fpm ports: - 9000:9000 volumes: - D://work/own/mynginx/web:/var/www/html ``` **配置说明** * 配置 nginx 服务,对外端口为 1414。 * nginx 的配置 和 网站目录 关联到本地地址,指明依赖 php74 服务。 * 配置 php74 服务,对外端口为 9000。 * php74 目录 关联到本地地址。 # nginx 配置: **正确的配置** ``` server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm index.php; } location ~ \.php$ { fastcgi_pass php74:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } ``` **坑点:** > 忘记配置 php 的脚本目录路经 **错误的配置** ``` # ... location ~ \.php$ { fastcgi_pass php74:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } # ... ``` 对比一下,就能知道问题所在。 # 后记 > Docker 真香。