没有不值得去解决的问题,也没有不值得去学习的技术!

在基于 Rancher 部署时,报错:Missing the temporary folder to store the uploaded file 的分析与解决

在 Postman 中打开网址:http://api.pcs.wjdev.chinamcloud.cn/v1/assets/upload, 上传文件,响应失败
1、在 Postman 中打开网址:http://api.pcs.wjdev.chinamcloud.cn/v1/assets/upload, 上传文件,响应失败,如图1
在 Postman 中打开网址:http://api.pcs.wjdev.chinamcloud.cn/v1/assets/upload, 上传文件,响应失败
图1


2019-09-29 17:19:34 [10.42.165.54][8][-][warning][yii\validators\FileValidator::validateValue] Missing the temporary folder to store the uploaded file: 360wallpaper(0).jpg
    in /mcloud/www/pcs-api/api/rests/asset/UploadAction.php:84


2、查看 /runtime/logs/app.log,报错:[warning][yii\validators\FileValidator::validateValue] Missing the temporary folder to store the uploaded file: 360wallpaper(0).jpg 3、回退至上一版本,未报错,查看 Git 日志,分析差异,如图2
回退至上一版本,未报错,查看 Git 日志,分析差异
图2
4、查看 File Uploads 的 upload_tmp_dir 值,;upload_tmp_dir =,上传文件时用于存储文件的临时目录。任何运行PHP的用户都必须可写。如果未指定,PHP将使用系统的默认值。系统的默认临时目录为 /tmp,查看当前版本 /tmp 目录的权限,如图3
查看 File Uploads 的 upload_tmp_dir 值,;upload_tmp_dir =,上传文件时用于存储文件的临时目录。任何运行PHP的用户都必须可写。如果未指定,PHP将使用系统的默认值。系统的默认临时目录为 /tmp,查看当前版本 /tmp 目录的权限
图3


drwxrwxr-x   1 root root


5、查看上一版本 /tmp 目录的权限,权限方面存在差异,分析得出结论,原因在于:/tmp 目录被覆盖进而导致权限被修改,如图4
查看上一版本 /tmp 目录的权限,权限方面存在差异,分析得出结论,原因在于:/tmp 目录被覆盖进而导致权限被修改
图4


drwxrwxrwt   1 root root


6、将 /build/c_files/tmp/yii-cmc-console-user-sync.ini、/build/c_files/tmp/yii-config-column-user-sync.ini 剪切至 /build/c_files/mcloud/yii-cmc-console-user-sync.ini、/build/c_files/mcloud/yii-config-column-user-sync.ini,如图5
将 /build/c_files/tmp/yii-cmc-console-user-sync.ini、/build/c_files/tmp/yii-config-column-user-sync.ini 剪切至 /build/c_files/mcloud/yii-cmc-console-user-sync.ini、/build/c_files/mcloud/yii-config-column-user-sync.ini
图5
7、编辑 \build\c_files\config\init\console_init.sh,替换 /tmp 为 /mcloud,代码如下,如图6
编辑 \build\c_files\config\init\console_init.sh,替换 /tmp 为 /mcloud
图6


env | grep PCS_API_CFG_CONSOLE || export PCS_API_CFG_CONSOLE="false"
if [[ $PCS_API_CFG_CONSOLE == "true" ]]
then
    \cp /mcloud/yii-cmc-console-user-sync.ini /etc/supervisord.d/
    echo "复制 yii-cmc-console-user-sync.ini 至 /etc/supervisord.d/"
    \cp /mcloud/yii-config-column-user-sync.ini /etc/supervisord.d/
    echo "复制 yii-config-column-user-sync.ini 至 /etc/supervisord.d/"
elif [[ $PCS_API_CFG_CONSOLE == "false" ]]
then
    echo "copy without console"
else
    echo "please set environment variable PCS_API_CFG_CONSOLE true or false"
fi


8、在 Postman 中打开网址:http://api.pcs.wjdev.chinamcloud.cn/v1/assets/upload, 上传文件,响应成功,如图7
在 Postman 中打开网址:http://api.pcs.wjdev.chinamcloud.cn/v1/assets/upload, 上传文件,响应成功
图7

PHP / Laravel / Yii2 老项目维护与长期技术支持

如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。

适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护

可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查

如需咨询,请联系我,并注明:PHP 维护咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

一条对“在基于 Rancher 部署时,报错:Missing the temporary folder to store the uploaded file 的分析与解决”的回复

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理