创建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一般没问题,但可以过一眼。
- 如果是Nginx:要确保配置里允许访问软链接,并且能正确处理storage目录的静态文件。在你的server配置块里加上这段:
核对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
相关产品推荐
相关产品推荐

