【问题标题】:Prevent PHP writing array data to /tmp folder [duplicate]防止PHP将数组数据写入/ tmp文件夹[重复]
【发布时间】:2021-04-01 12:44:48
【问题描述】:

在新部署的 CentOS 7 服务器上运行 LAMP 堆栈。 PHP 7.

我有一个内部资源密集型脚本,用于在解析/写入数据之前构建大型 PHP 数组来存储数据。在我们迁移到新服务器之前一切正常。

几分钟后,脚本终止并出现以下错误:

Error writing file '/tmp/MYxJXajd' (Errcode: 28 "No space left on device")

我检查了一下,我的/tmp 分区非常小。但是,我想避免仅仅为了这个脚本的利益而调整分区大小,所以我想我只需将要写入此特定数据的目录更改为主(更大)分区上的目录。

我使用session_save_path() 更改了会话目录位置,可以确认这没问题。

但是,同样的错误仍然存​​在,因此必须有一些其他进程/设置正在将数据写入/tmp 目录以存储数组数据。但是,在对 phpinfo() 输出进行文本搜索时,/tmp 不会出现在任何地方,所以我不确定我还能更改什么。

有什么想法吗?

【问题讨论】:

  • 查看失败的脚本和完整的错误消息可能很有用。或者我们可以只玩 20 次猜测
  • 是的,我应该在提问之前搜索具体错误。这显然是一个 MySQL 问题,已经回答了我自己的问题。

标签: mysql


【解决方案1】:

只是快速回答这个问题。这个特定的错误 (28) 是由 MySQL 写临时文件的空间不足引起的,而不是 PHP。只需要更改mysql配置上的tmpdir变量并将其权限授予相应的用户。

【讨论】:

    猜你喜欢
    • 2020-06-11
    • 2016-02-07
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2019-12-04
    • 2022-06-21
    相关资源
    最近更新 更多