PHP 项目,线上碰到个奇怪问题,使用fwrite写入tmpfile() 失败。这里的失败并不是指fwrite返回 FALSE,而是返回int(0),写入 0 个字节。代码很简单如下所示:

$f = tmpfile();

$length = fwrite($f, '123');

var_dump($length);

通过浏览器访问,即php-fpm方式下,输出 int(0)。我做了其他几种情况的测试:

命令行环境:代码原封不动,执行是可以成功写入的。

php-fpm 浏览器访问:将 tmpfile() 替换成fopen('非 /tmp 目录', 'w+'),php-fpm 下可以写入,输出 int(3)

php-fpm 浏览器访问:将 tmpfile() 替换成 fopen('/temp/test-randomstring', 'w+'),输出 int(0)

当前问题已经通过其他迂回方式解决,但是为何写入失败还没有查出原因。最初是怀疑跟服务器的磁盘剩余空间有关(仅剩 10M),但是 1 2 两次测试说明 10M 应该是够用的。

请问大家有什么好的查 BUG 思路?或碰到过类似问题?

更新, 新增了一段测试代码

$name = date("His");

echo "File /tmp/$name.txt\n";

shell_exec('echo "123" > /tmp/'.$name.'.txt&#

php fwrite写入失败,奇怪问题 php-fpm 下使用 fwrite 写入 /tmp 目录失败相关推荐

  1. win10环境下c语言打开文件失败,cfile fopen fopen_s win10下打开文件失败

    vc程序在win10下面使用fopen 打开文件失败,在网上查 了下是因为UAC权限的问题如下: 由于windows vista win7 win8 win 10 添加了UAC权限,所以会导致 在系统 ...

  2. influxdb数据过期_Influxdb Cluster下的数据写入

    Cluster下的数据写入 数据写入的实现主要分析cluster/points_writer.go中的WritePoints函数的实现// WritePoints writes across mult ...

  3. mysql tmp目录权限_MySQL因/tmp目录读写权限启动失败

    启动错误: Starting MySQL.The server quit without updating PID file (/[失败]cal/mysql/var/Aprice2.pid). 错误日 ...

  4. linux多线程下的fwrite和write使用详解

    Linux下的文件操作,有人喜欢用C库的文件流操作,有人喜欢用Linux的原生的系统调用.一般来说,C库的文件操作会更高效一些,因为C库自己做了文件缓存的处理.今天,主要研究多线程下的fwrite与w ...

  5. windows10下使用wget命令(安装失败,请大家提意见)

    windows10下使用wget命令(安装失败,请大家提意见) 下载 下载地址 安装 配置环境变量 计算机–属性–高级系统设置–环境变量 可以在用户变量或者系统变量里新建变量,俩个选一个就行(我在个人 ...

  6. python逐行写入csv_python之模块csv之CSV文件的写入(按行写入)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #CSV文件的写入(按行写入) import csv #csv文件,是一种常用的文本格式,用以存储表格数据,很 ...

  7. Window10/Linux 下安装 scrapy (twisted 安装失败的解决办法 )

    安装前的一些所谓的"废话" Scrapy 是一个优秀的 Python 框架,相信很多初学者在安装 Scrapy 的时候会遇到一些坑(这些坑主要体现在 Windows 下的 twis ...

  8. [移动网关]2G环境下资源下载有一定概率失败,客户端日志显示收到403错误

    2G环境下资源下载有一定概率失败,客户端日志显示收到403错误 问题现象: 测试同学在使用联通号码在移动网络环境下,访问连接得到的response_code出现是403,导致资源读取失败表情显示异常. ...

  9. 解决jupyter botebook打不开,修改jupyter botebook工作目录失败问题

    解决jupyter botebook打不开 打开jupyter正常应该是自动打开浏览器,或者给你个黑框,你自己复制,粘贴到浏览器里,如图: 但有时怎么也打不开,这时可以在cmd或者anaconda p ...

最新文章

  1. 计算机二级理工类报哪个,计算机二级考哪一科目,毕业后找工作会对科目有要求吗?还是说不管什么科目有证就行了?...
  2. MySQL数据库之安装
  3. 使用Denyhost来阻止恶意连接SSH的IP
  4. 更易于使用的Retrofit(不用写注解)
  5. 关于Android的EditText焦点问题
  6. JVM之JVM内存区域与内存分配(转载)
  7. jquery ajax load
  8. spring创建web项目_使用Spring WS创建合同优先的Web服务
  9. 最简易上手的numpy学习笔记三
  10. 林洋能源:布局能源互联网 分布式光伏龙头再扬帆
  11. Spring Boot 特性
  12. python变量类型声明_python变量声明及简单数据类型
  13. php 是否支持json,php json 支持汉语
  14. 数学四大思想八大方法_高中数学八种思维方法如何训练数学思维,高中数学的四大思想是什么?...
  15. Git克隆仓库代码至本地
  16. 常用Quartz cron表达式例子
  17. 支付宝客户端拉起支付
  18. 视频演示SHAtter越狱iOS 4.1
  19. amp sqlserver中 什么意思_PLSQL中是什么意思
  20. 整理lw_oopc开源项目

热门文章

  1. windows下ffmpeg+nginx-rtmp环境搭建及opencv+ffmpeg+python实现拉流和rtmp直播推流
  2. 复杂网络分析工具及其比较(…
  3. linux7 inittab没有,CentOs7 7个运行级别介绍,(CentOs7 inittab在使用systemd时不再使用)...
  4. VSCode用Run code插件配置python环境(win10)
  5. pycharm连接服务器方法
  6. c++: 已经声明过变量,依然报 C2065:未声明的标识符错误 解决办法
  7. 计算机科学研究算法的局限性,YOCSEF 论坛 | CNCC2018 — 研究经典计算机算法已经过时了吗?...
  8. python打开本地浏览器_使用webdriver打开本地浏览器--python版
  9. 如何重装服务器的系统教程,如何重装服务器系统教程
  10. 微信小程序之window