为了账号安全,请及时绑定邮箱和手机立即绑定

高负载会导致 PHP 无法写入文本文件吗?

高负载会导致 PHP 无法写入文本文件吗?

PHP
哆啦的时光机 2022-01-08 14:55:37
我有一个 PHP 脚本,它处于高负载状态,每秒有多个调用(来自另一台计算机)。它在 IIS 服务器上的 PHP 5.5.14 上运行。使用脚本记录每个请求和响应file_put_contents('log_2019-09-12.txt', $msg, FILE_APPEND);每个请求和响应也记录在客户端计算机上,我偶尔会看到这样的 PHP 错误:PHP ERROR 2: file_put_contents(C:\\WWW\\project-x\\logs\\log_2019-09-11.txt): failed to open stream: Permission denied这些似乎大约每 140 分钟发生一次,通常连续 8 个,然后事情又工作了约 140 分钟,每秒处理几个请求并成功记录到日志文件。可能是 PHP 通常会写入内存文件,然后实际上每隔 140 分钟将内容写入磁盘,这就是导致此错误的原因吗?如果是这样,我该如何规避它?
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

Magnus Eriksson 在评论中回答

LOCK_EX在编写时尝试添加参数:file_put_contents($file, $text, FILE_APPEND|LOCK_EX)来自手册:the LOCK_EX flag to prevent anyone else writing to the file at the same time


查看完整回答
反对 回复 2022-01-08
?
九州编程

TA贡献1785条经验 获得超4个赞

你没有权限写这个。mkdir($path, 0755, true) 在你写的时候检查你是否有权限。


查看完整回答
反对 回复 2022-01-08
  • 2 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信