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

Laravel部署至虚拟主机后文件上传失败求助

Laravel部署后文件上传失败的解决建议

以下是针对你遇到的部署后文件上传失败问题的具体排查和解决步骤:

  • 检查目录权限
    虚拟主机下storage和public/storage目录的权限是最常见的问题。如果有SSH权限,执行:

    chmod -R 755 storage
    chmod -R 755 public/storage
    

    无SSH权限的话,通过主机控制面板将这两个目录权限设为755,确保Web服务器用户(如www-data、apache)拥有读写权限。

  • 重新创建存储符号链接
    本地环境的storage:link不会自动同步到服务器,需重新创建:

    • 有SSH权限:运行 php artisan storage:link
    • 无SSH权限:手动在public目录下创建指向../storage/app/public的软链接(Linux用ln命令,Windows用mklink)
  • 排查PHP上传配置限制
    虚拟主机的PHP默认配置可能限制了文件大小,可通过.htaccess调整(Apache服务器):

    php_value upload_max_filesize 10M
    php_value post_max_size 12M
    php_value max_execution_time 60
    

    确保post_max_size大于upload_max_filesize,避免因文件过大导致上传失败。

  • 手动创建目标存储目录
    虽然Laravel的store()方法会自动创建目录,但虚拟主机权限可能阻止这一操作。手动创建storage/app/public/images目录并设置755权限。

  • 开启调试获取具体错误
    当前错误提示过于模糊,修改.env开启调试模式:

    APP_DEBUG=true
    

    查看storage/logs/laravel.log中的详细错误信息,比如磁盘空间不足、权限拒接等,精准定位问题。

  • 明确指定存储磁盘
    修改store方法,明确使用public磁盘存储,避免默认磁盘的潜在问题:

    $img = $request->file('file')->store('images', 'public');
    

内容的提问来源于stack exchange,提问作者vvooki.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:32:22