Laravel 8配合Livewire在Linux托管服务器上传图片报错本地正常
Laravel 8 + Livewire Linux服务器图片上传报错修复方案
报错截图:
该问题核心原因为Linux服务器下Livewire临时上传目录权限、PHP上传配置异常,本地环境因权限默认宽松不会触发报错,可按以下步骤逐一排查修复:
1. 校验Livewire临时上传目录配置
查看config/livewire.php中temporary_file_upload.directory参数,默认路径为storage/app/livewire-tmp,确认该目录实际存在。
2. 修正目录权限
进入项目根目录后执行以下命令:
- 配置目录所有者为Web运行用户(默认常见为
www-data,若使用面板托管需替换为站点实际运行用户):chown -R www-data:www-data storage bootstrap/cache - 配置目录读写权限:
chmod -R 755 storage bootstrap/cache
如果临时验证权限问题,可临时设置为775测试,验证通过后回退到最小可用权限即可。
3. 校验PHP上传配置
检查服务器php.ini配置项,确保满足上传需求:
upload_max_filesize:单文件最大上传限制,需大于你上传的图片体积post_max_size:POST请求总大小限制,需大于单文件限制upload_tmp_dir:PHP全局临时上传目录需存在且对Web运行用户开放可写权限
4. 存储链接校验
如果上传的文件需要公开访问,确认已执行存储软链接创建命令:php artisan storage:link
且public/storage软链接指向storage/app/public路径,权限配置正确。
收尾操作
所有配置修改完成后,执行以下命令清理Laravel缓存后再测试上传功能:
php artisan config:clear php artisan cache:clear
内容的提问来源于stack exchange,提问作者Honey Sarkar
相关产品推荐
相关产品推荐


