Laravel 10在Plesk/Unix环境下storage:link问题:图片无法显示
Laravel 10 图片上传后无法显示(Plesk Unix环境)的排查方案
以下是针对问题的具体排查与解决步骤:
1. 验证符号链接有效性
Plesk环境中相对路径创建的符号链接容易失效,建议通过终端直接检查并手动用绝对路径创建:
- 查看当前符号链接状态:
正常输出应指向ls -l /path/to/your/project/public/storage/path/to/your/project/storage/app/public或../storage/app/public。 - 若链接不存在或指向错误,手动创建:
替换ln -s /path/to/your/project/storage/app/public /path/to/your/project/public/storage/path/to/your/project为你实际的项目根目录路径。
2. 修正文件与目录权限
权限问题是静态资源无法访问的常见诱因:
- 递归设置图片目录权限为755,文件权限为644:
chmod -R 755 /path/to/your/project/storage/app/public/images chmod -R 644 /path/to/your/project/storage/app/public/images/posts/featured-images/* - 将
storage和bootstrap/cache目录归属设置为Web服务器用户(Plesk中通常为psacln或www-data):chown -R psacln:psacln /path/to/your/project/storage /path/to/your/project/bootstrap/cache
3. 确认Plesk文档根目录设置
你的访问链接包含/shopshare/,需确保:
- 在Plesk的网站设置中,文档根目录指向项目的
public文件夹(即/path/to/your/project/public),而非项目根目录。若文档根设为项目根,会导致storage路径解析错误。 - 检查
.env文件中的APP_URL是否配置为https://plwd.com/shopshare,确保Laravel生成的资源路径与实际部署路径匹配。
4. 检查Plesk安全与PHP设置
- 确认Plesk「网站与域名>Apache与Nginx设置」中,已取消「限制跟随符号链接」选项,同时排查是否开启了「保护静态文件」等拦截类选项,可临时关闭测试。
- 进入Plesk PHP管理页面,查看「禁用函数」列表,确保
symlink和readlink未被禁用。
5. 清理Laravel缓存
旧配置或路由缓存可能导致路径解析异常,执行以下命令清理:
php artisan cache:clear php artisan config:clear php artisan route:clear
内容的提问来源于stack exchange,提问作者CHLOE HARLOW
相关产品推荐
相关产品推荐

