Laravel项目部署到o2switch+cPanel后Storage图片无法显示求助
解决Laravel在o2switch(cPanel)服务器上Storage图片无法显示的问题
排查与解决步骤
1. 检查符号链接目标路径是否正确
登录cPanel文件管理器,找到public_html/storage(若你的Laravel public目录对应cPanel的public_html),右键点击该文件夹查看目标路径:
- 正确目标应指向Laravel项目根目录下的
storage/app/public,比如项目根目录为/home/你的用户名/laravel-project,目标路径应为../laravel-project/storage/app/public;若Laravel的public目录直接是public_html,则目标为../storage/app/public。 - 若路径错误,删除现有
public_html/storage,手动创建软链接(替换为你的实际路径):ln -s /home/你的用户名/laravel-project/storage/app/public /home/你的用户名/public_html/storage
2. 修复目录与文件权限
确保权限配置正确,避免访问被拒绝:
# 设置storage目录权限为755 chmod -R 755 /home/你的用户名/laravel-project/storage # 设置storage下文件权限为644 chmod -R 644 /home/你的用户名/laravel-project/storage/* # 同步public_html/storage的权限 chmod 755 /home/你的用户名/public_html/storage
3. 配置Apache允许跟随符号链接
若服务器使用Apache,在public_html/.htaccess中添加或修改配置:
Options +FollowSymLinks
已有Options行的话,确保包含+FollowSymLinks。
4. 验证文件存在性与URL访问
- 确认服务器上
storage/app/public/1/6.webp真实存在,注意Linux服务器区分文件名大小写; - 直接访问图片URL
https://mywebsite/storage/1/6.webp,根据浏览器控制台错误定位问题:- 403 Forbidden:权限或符号链接配置错误;
- 404 Not Found:文件不存在或路径错误。
5. 重新生成符号链接(规避artisan路径问题)
cPanel中执行artisan命令可能因工作目录错误导致链接失效,按以下步骤操作:
- 删除
public_html下的storage链接; - 进入Laravel项目根目录:
cd /home/你的用户名/laravel-project; - 重新执行:
php artisan storage:link
内容的提问来源于stack exchange,提问作者Gürsel Ünlü
相关产品推荐
相关产品推荐

