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

Docker环境下修改Nginx默认日志路径报错求助

问题解决:Docker Compose中Nginx日志路径找不到的问题

问题根源

  1. 你在PHP-FPM容器(app服务)的Dockerfile里创建了日志目录,但Nginx容器是独立实例,根本访问不到另一个容器里的文件路径。
  2. 你把宿主机的../src挂载到了两个容器的/var/www/FPM目录,这会直接覆盖容器内原本创建的log文件夹——因为宿主机的../src里大概率没有这个目录。

解决方案一:宿主机挂载日志目录(推荐,方便本地查看日志)

1. 宿主机创建日志目录

在项目根目录(和src文件夹同级)执行命令:

mkdir -p ../log/nginx

2. 修改docker-compose.yml,给Nginx和PHP-FPM挂载日志目录

version: "3.8"

services:
  app:
    build:
      context: ./
      dockerfile: Dockerfile
    container_name: FPM-app
    restart: always
    working_dir: /var/www/FPM
    volumes:
      - ../src:/var/www/FPM
      # 让PHP-FPM也能访问日志目录(如果不需要可以删掉这行)
      - ../log/nginx:/var/www/FPM/log/nginx

  nginx:
    image: nginx:1.23.1-alpine
    container_name: FPM-nginx
    restart: always
    ports:
      - 8000:80
    volumes:
      - ../src:/var/www/FPM
      - ./nginx:/etc/nginx/conf.d
      # 关键:把宿主机日志目录映射到Nginx容器内的目标路径
      - ../log/nginx:/var/www/FPM/log/nginx

3. 简化Dockerfile,删掉无用的目录创建命令

因为现在用宿主机目录挂载,容器启动时会自动识别路径,不需要在镜像里提前创建:

FROM php:8.0.2-fpm

RUN apt-get update && apt-get install -y \
    git \
    curl \
    zip \
    unzip

WORKDIR /var/www/FPM

4. 重启服务生效

docker compose down
docker compose up --build

解决方案二:使用Nginx容器自带的日志目录(无需宿主机挂载)

如果不需要把日志存在本地,直接用Nginx默认的日志目录即可:

1. 修改nginx.conf里的日志路径

server {
    listen 80;
    index index.php;
    root /var/www/FPM/public;
    # 改成Nginx容器默认的日志目录(容器内已存在)
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    error_page 404 /index.php;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }
}

2. 直接重启服务

不需要修改其他配置,执行docker compose restart即可。查看日志可以用命令:

docker logs FPM-nginx
# 或者进入容器查看
docker exec -it FPM-nginx cat /var/log/nginx/error.log

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:15:45