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

Docker部署Laravel时遭遇日志目录权限拒绝问题

Laravel Docker镜像构建日志目录权限拒绝问题

报错信息

The stream or file "/var/www/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied

我的配置文件

docker-compose.yml

php:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: php
    volumes:
     - ./:/var/www/
     - laravel-log:/var/www/html/storage/
     - bootstrap-cache:/var/www/html/bootstrap/cache/
    ports:
      - "9000:9000"
    networks:
      - laravel

Dockerfile

FROM php:8-fpm
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
RUN docker-php-ext-install pdo pdo_mysql
RUN mkdir -p /var/www/storage/framework/{sessions,views,cache} \
     && mkdir -p /var/www/bootstrap/cache \
     && mkdir -p /var/www/storage/logs \
     && chmod +w /var/www/storage/ \
     && chown -R www-data:www-data /var/www

问题分析与解决办法

核心问题

Dockerfile中对/var/www/storage设置了权限,但docker-compose里把卷挂载到了/var/www/html/storage,路径不匹配导致权限配置完全没生效。容器启动后,挂载的卷目录默认属于root用户,而PHP-FPM以www-data用户运行,自然无法写入日志文件。

具体修复步骤

  1. 统一路径匹配
    修改docker-compose.yml中的卷挂载路径,和Dockerfile保持一致:

    volumes:
     - ./:/var/www/
     - laravel-log:/var/www/storage/
     - bootstrap-cache:/var/www/bootstrap/cache/
    
  2. 强化权限设置
    更新Dockerfile中的权限命令,确保目录拥有正确的读写权限:

    RUN mkdir -p /var/www/storage/framework/{sessions,views,cache} \
         && mkdir -p /var/www/bootstrap/cache \
         && mkdir -p /var/www/storage/logs \
         && chmod -R 775 /var/www/storage/ /var/www/bootstrap/cache \
         && chown -R www-data:www-data /var/www/storage/ /var/www/bootstrap/cache
    
  3. 修复现有卷权限(可选)
    如果已经创建过卷,直接进入容器执行权限修复命令:

    docker exec -it php chown -R www-data:www-data /var/www/storage /var/www/bootstrap/cache
    
  4. 重建容器(彻底解决)
    删除现有卷并重新构建容器:

    docker-compose down -v
    docker-compose up --build
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:20:27