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

Laravel php artisan storage:link远程服务器失效问题求助

解决Laravel远程服务器storage:link异常问题

问题分析

本地php artisan storage:link可正常执行,但远程服务器上要么提示「link already exists」,删除目标目录后又报错symlink(): No such file or directory,核心原因大概率是目标存储目录缺失、路径配置冗余斜杠导致解析异常或服务器权限限制。

解决方案

1. 确认目标存储目录存在并配置权限

登录远程服务器,执行以下命令:

# 进入Laravel项目根目录(public_html/app)
cd public_html/app
# 创建缺失的avatars存储目录
mkdir -p storage/app/public/avatars
# 设置目录权限(根据服务器环境调整,755或775均可)
chmod -R 755 storage/app/public/avatars

2. 修正filesystems.php路径配置

打开config/filesystems.php,移除links部分路径末尾的冗余斜杠,避免路径解析错误:

'links' => [
    public_path('icons') => storage_path('app/public/avatars'),
],

随后清除配置缓存:

php artisan config:clear

3. 手动创建软链接(替代artisan命令)

若执行php artisan storage:link仍报错,直接用Shell命令手动创建软链接:

# 进入项目的public目录
cd public_html/app/public
# 创建软链接,将icons指向storage/app/public/avatars
ln -s ../storage/app/public/avatars icons

执行完成后,可通过以下命令验证软链接是否创建成功:

ls -la icons

若输出显示icons -> ../storage/app/public/avatars,则说明创建有效。

4. 检查服务器软链接权限

如果是共享主机(如cPanel),需确认主机服务商是否允许用户创建软链接。部分主机默认禁用symlink功能,可联系服务商开启该权限。

验证

上传文件至storage/app/public/avatars后,访问https://app.mydomain.com/icons/[文件名],确认文件可正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:15:15