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

创建Laravel存储链接后项目页面出现403 Forbidden错误的求助

创建Laravel存储链接后项目页面出现403 Forbidden错误的求助

Hey,看起来你在Laravel里创建存储链接后,项目页面碰到了403禁止访问的问题,我来帮你梳理下常见的排查方向和解决办法:

  • 检查存储目录与文件的权限
    首先得确保Web服务器(比如Nginx、Apache)能读取你的存储目录和里面的文件。你可以通过这两条命令来设置标准的权限:

    chmod -R 755 storage/ public/
    chown -R www-data:www-data storage/ public/
    

    注意哦,如果你的服务器用的是其他用户组(比如Nginx的话可能是nginx),记得把www-data换成对应的用户。另外,存储目录里的图片文件权限也不能太严,跑这条命令批量调整:

    chmod -R 644 storage/app/public/
    
  • 重新确认软链接是否有效
    有时候php artisan storage:link可能因为权限问题没创建对,或者链接指向错了地方。先删掉现有的软链接,再重新创建试试:

    rm public/storage
    php artisan storage:link
    

    创建完可以用ls -l public/storage看看,它应该正确指向../storage/app/public才行。

  • 检查Web服务器的配置

    • 如果是Nginx:要确保配置里允许访问软链接,并且能正确处理storage目录的静态文件。在你的server配置块里加上这段:
      location /storage {
          try_files $uri $uri/ =404;
      }
      
      另外确认下配置里有follow_symlinks on;(默认一般是开的,但最好核对下),改完记得重启Nginx:sudo systemctl restart nginx
    • 如果是Apache:先确认mod_rewrite模块已经启用,然后检查项目根目录的.htaccess文件,有没有规则不小心阻止了storage目录的访问,Laravel默认的.htaccess一般没问题,但可以过一眼。
  • 核对Laravel文件系统配置
    打开config/filesystems.php,看看public磁盘的配置是不是这样的:

    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],
    

    重点看visibility必须是public,不然文件会被设为私有,Web服务器就读不到啦。

备注:内容来源于stack exchange,提问作者Floris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 12:10:30