PHP /tmp 文件在请求过程中消失 - 有时

PHP /tmp files disappear in the middle of request - sometimes

所以我有一个 API 使用 php 7.2 构建,带有 nginx 和 php-fpm 用于上传文件。

上传文件后,在将文件移动到挂载的 NAS 之前,需要对 /tmp 中的文件执行几个步骤。

  1. 检查权限
  2. 扫描病毒
  3. 创建数据库记录
  4. 生成缩略图 .... 最后复制到 NAS。

文件在前端的连续请求中一个一个上传。在 99.999% 的准时率下,一切顺利,但有时文件会在请求过程中消失。有时在第 2 步,有时在第 4 步,有时在第 5 步,没有任何规则。文件大小无关紧要,它同样会破坏 30kb 和 200mb 文件,并且限制以 GB 为单位。此外,与文件类型无关。它恰好对图像、zip、文档失败...

这是来自 Graylog 的单个请求的屏幕截图,确认 tmp 文件在请求开始时存在并在稍后消失。

我的猜测是您的 /tmp 文件夹中有某种清理脚本 运行,它会删除当时正在处理的任何文件。

例如,在我的 ubuntu 系统上有一个每天运行并清理文件夹的 cron。

我建议使用网络服务器用户拥有的不同文件夹。这应该可以消除 /tmp 出现问题的可能性。