Laravel 7在Hostinger虚拟主机中Storage链接无法工作求助
解决Hostinger虚拟主机Laravel 7 Storage软链接创建失败问题
错误原因
你遇到的路径错误是因为路径拼接重复:$_SERVER['DOCUMENT_ROOT']在Hostinger环境下已经指向/home/u907022978/domains/saifkhalilhardware.com/public_html,你额外添加的/public_html会导致路径变成public_html/public_html/...,最终触发"Directory not found"错误。
解决方法
方法1:通过SSH执行Artisan命令(推荐)
Hostinger虚拟主机支持SSH登录,直接执行原生Artisan命令最可靠:
- 登录你的Hostinger SSH账户
- 切换到项目根目录(即
public_html目录):cd /home/u907022978/domains/saifkhalilhardware.com/public_html - 执行storage链接命令:
php artisan storage:link
方法2:修正PHP软链接脚本
把你之前的脚本改成以下内容,去掉多余的/public_html:
<?php // 目标目录:public_html/storage/app/public $targetFolder = $_SERVER['DOCUMENT_ROOT'].'/storage/app/public'; // 链接目录:public_html/public/storage $linkFolder = $_SERVER['DOCUMENT_ROOT'].'/public/storage'; // 先检查目标目录是否存在,避免错误 if (!file_exists($targetFolder)) { mkdir($targetFolder, 0755, true); } // 检查链接是否已存在,避免重复创建 if (!file_exists($linkFolder)) { symlink($targetFolder, $linkFolder); echo "Storage链接创建成功"; } else { echo "Storage链接已存在"; } ?>
将这个脚本保存为linkstorage.php放在public_html/public目录下,然后通过浏览器访问你的域名/linkstorage.php执行。
方法3:手动创建软链接(如果SSH和PHP脚本都不行)
如果以上方法都失效,你可以通过Hostinger的文件管理器手动创建软链接:
- 登录Hostinger后台,打开文件管理器,进入
public_html/public目录 - 点击顶部的"创建"按钮,选择"软链接"
- 目标路径填写:
../storage/app/public(相对路径,避免绝对路径错误) - 链接名称填写:
storage - 确认创建即可
验证链接是否成功
创建完成后,你可以在public_html/public目录下看到storage软链接,尝试上传一张图片到storage/app/public目录,然后访问你的域名/storage/图片文件名,如果能正常显示则说明链接成功。
内容的提问来源于stack exchange,提问作者Zeeshan Farooq
相关产品推荐
相关产品推荐

