Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
出于某种原因,我的一个 php 脚本忽略了 php.ini 内存限制或 ini_set。
当我执行 print_r(ini_get_all) 时,它显示全局内存限制设置为 100M(以及本地),当我的脚本死于致命错误时:内存不足(分配 24714304)(试图分配 571 字节)
有关诊断此问题的任何提示?服务器有 8gigs 的内存,之前运行这个脚本从来没有遇到过问题。
关于调试的任何提示?
谢谢!
最常见的一个原因是 CLI PHP 二进制文件使用的 php.ini 文件通常与您预期的不同。这可能是由用户权限引起的,或者只是安装的 PHP 版本的默认 php.ini 文件不同。但是,听起来您已经对其进行了一些分析,并且您的内存限制在您的脚本中可能是正确的。
在这种情况下,很可能您的操作系统对进程施加了硬内存限制,在这种情况下,您必须弄清楚强加来自哪里。
我建议看一下这个帖子,因为那张海报的经历与你的情况非常相似。
我的进程的虚拟内存受到硬限制(数量太少)。
从 bash shell 我这样做了:
ulimit -v(memory_in_bytes,无括号)
这解决了我的问题。上帝我爱stackoverflow
短暂而甜蜜
ini_set('memory_limit', -1);
如果您想跳过调试