如何在Hostinger共享主机上正确创建Symbolic Link(Symlink)
Hostinger共享主机创建Symbolic Link无效问题排查与解决流程
问题概述
在Hostinger共享主机中尝试创建软链,将public_html/storage链接到storage/app/public,使用ln -s命令后链接显示无效或指向错误目标,尝试storage:link命令也未解决。
可能的问题原因
- 路径拼写错误:绝对路径中可能存在域名、目录名拼写失误,导致软链指向不存在的目录。
- 绝对路径解析限制:主机环境可能存在权限或路径解析规则,导致绝对路径软链无法正常识别。
- Laravel默认命令路径不匹配:
storage:link默认指向public/storage,但Hostinger的web根目录是public_html,需手动调整目标路径。 - 父目录权限不足:涉及的父目录权限设置不当,导致软链无法访问源目录。
正确操作流程
1. 清理无效软链
先删除已存在的无效链接:
rm /home/u789790412/domains/tomvpn.appapistec.xyz/public_html/storage
2. 使用相对路径创建软链(推荐)
进入public_html目录后,用相对路径创建软链,避免绝对路径的解析问题:
cd /home/u789790412/domains/tomvpn.appapistec.xyz/public_html ln -s ../storage/app/public storage
3. 验证软链有效性
执行以下命令查看软链指向是否正确:
ls -l /home/u789790412/domains/tomvpn.appapistec.xyz/public_html/storage
输出应显示指向../storage/app/public的有效链接。
4. Laravel项目适配调整
如果是Laravel项目,需修改storage:link的目标路径,执行:
php artisan storage:link --public public_html/storage
或修改config/filesystems.php中public磁盘的配置,确保url指向正确的web路径:
'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ],
同时确保.env文件中的APP_URL设置为你的域名:
APP_URL=https://tomvpn.appapistec.xyz
5. 权限检查与调整
- 确保
storage/app/public和public_html目录的权限为755:
chmod 755 /home/u789790412/domains/tomvpn.appapistec.xyz/storage/app/public chmod 755 /home/u789790412/domains/tomvpn.appapistec.xyz/public_html
- 软链本身权限默认为
lrwxrwxrwx,无需修改,其访问权限由源目录决定。
Hostinger环境特殊说明
Hostinger共享主机默认允许同一账户下的目录创建软链,无需额外开启特殊设置。若仍出现问题,可检查主机是否启用了open_basedir限制(通过phpinfo查看),该限制可能阻止软链访问超出指定范围的目录,此时需联系Hostinger客服调整。
内容的提问来源于stack exchange,提问作者Sameed Ediz
相关产品推荐
相关产品推荐

