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

Docker环境下Laravel资源访问403权限拒绝问题求助

解决Laravel资源403访问拒绝问题(Docker+DNMP+Nginx Proxy Manager)

1. 检查Laravel项目文件权限

Laravel的public目录及静态资源权限错误是最常见的403诱因:

  • 宿主机上直接调整权限:
    # 给存储目录开放写入权限
    chmod -R 775 storage bootstrap/cache
    # 匹配容器内PHP运行用户(通常为www-data)
    chown -R www-data:www-data your-project-root
    
  • 进入DNMP的PHP容器内操作:
    docker exec -it your-php-container bash
    chmod -R 775 storage bootstrap/cache
    chown -R www-data:www-data /var/www/html
    

2. 修正Nginx Proxy Manager转发配置

NPM必须精准指向Laravel的public目录,而非项目根目录:

  • 登录NPM后台,找到对应站点的代理配置
  • Forward Hostname / IP填写DNMP中PHP容器的服务名(如php)或容器IP(需确保两容器在同一Docker网络)
  • Forward Port填写PHP-FPM端口,通常为9000
  • 切换到Advanced标签,添加自定义Nginx规则处理静态资源:
    location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg)$ {
        root /var/www/html/public; # 对应PHP容器内Laravel的public目录路径
        expires 1y;
        add_header Cache-Control "public, immutable";
        try_files $uri $uri/ =404;
    }
    
    location / {
        try_files $uri $uri/ /index.php?$query_string;
        fastcgi_pass php:9000; # 与DNMP中PHP容器的服务名保持一致
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    

3. 确保Docker网络互通

DNMP容器和NPM必须在同一Docker网络,否则NPM无法访问PHP容器:

  • 查看DNMP的docker-compose.yml网络配置,比如是否有自定义网络:
    networks:
      default:
        external:
          name: dnmp-shared-network
    
  • 修改NPM的docker-compose.yml,加入同一网络:
    networks:
      default:
        external:
          name: dnmp-shared-network
    
  • 重启NPM容器生效:
    docker-compose down && docker-compose up -d
    

4. 校验Laravel环境配置

确保.env文件的APP_URL与访问域名一致:

APP_URL=https://your-domain.com

然后清除Laravel缓存:

docker exec -it your-php-container php artisan config:clear
docker exec -it your-php-container php artisan cache:clear

5. 确认静态资源路径正确性

页面中需使用Laravel内置函数生成资源路径,避免相对路径解析错误:

<link rel="stylesheet" href="{{ asset('css/app.css') }}">
<script src="{{ mix('js/app.js') }}"></script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:52:20