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

部署的Laravel8应用无法通过符号链接访问storage目录图片如何解决?

SiteGround部署Laravel 8存储链接403错误解决方案

1. 修正目录权限

403错误绝大多数由权限配置错误导致,执行以下命令修正权限(替换路径为你站点的实际路径):

  • 递归修改storage目录权限,目录设为755,文件设为644:
find /home/[你的站点用户名]/[站点根目录]/storage -type d -exec chmod 755 {} \;
find /home/[你的站点用户名]/[站点根目录]/storage -type f -exec chmod 644 {} \;
  • 修改public下storage软链接的权限:
chmod 755 /home/[你的站点用户名]/[站点根目录]/public/storage

注意不要给目录设置777权限,会有严重安全风险

2. 开启Apache符号链接跟随

SiteGround共享主机默认禁止跟随符号链接,在public/.htaccess文件最开头添加以下配置:

Options +FollowSymLinks

如果添加后报错,就改为:

Options +SymLinksIfOwnerMatch

3. 确认软链接指向正确

你是硬编码创建的软链接,执行以下命令验证指向是否正确:

ls -la /home/[你的站点用户名]/[站点根目录]/public/storage

输出结果里的指向路径必须是/home/[你的站点用户名]/[站点根目录]/storage/app/public的绝对路径,相对路径会导致访问异常,指向错误的话删除现有软链接重新创建即可。

4. 修正存储URL配置

打开config/filesystems.php,确认public磁盘配置如下:

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

同时检查.env文件中的APP_URL参数,填写为你站点的完整域名,例如APP_URL=https://yourdomain.com,不要保留本地的localhost配置。

5. 清除缓存

配置修改完成后执行Laravel缓存清除命令:

php artisan config:clear
php artisan cache:clear

如果开启了SiteGround面板的静态缓存,也需要在面板中手动清除一次站点缓存。


补充说明:你排查时第6项无输出是正常现象,Storage::url()返回的是HTTP链接,file_exists()仅能识别本地文件路径,无法校验远程链接;第8项图片不显示是因为你错误填入了服务器本地路径作为img的src属性,改为src="{{ asset('storage/imgs/test.jpg') }}"即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:51:02