当脚本中的内存不足时,这不是正常的致命错误,因为它没有提供文件名,行号或使用的内存量。每当我尝试在命令行上运行php时,它只是说“内存不足”,或者当你传递一个脚本或者只是自己运行php时。即使尝试运行不存在的脚本也会发出相同的消息。
换句话说,我明白了:
dan@server [~]# php
Out of memory
dan@server [~]# php test.php
Out of memory
dan@server [~]# php doesntexist.php
Out of memory
dan@server [~]# php -v
Out of memory
然而,通过Apache的PHP工作非常好。只是在CLI上我才收到此错误。
有问题的机器正在运行CentOS 5.7版(最终版)和PHP 5.3.10版。
编辑:我刚刚尝试以root身份运行ulimit -a,这是输出:
core file size (blocks, -c) 1000000
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 37888
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 4096
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 14335
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
答案 0 :(得分:2)
这不是PHP失败,但内核阻止您使用过多内存的进程。使用ulimit -a
查看已设置的限制。然后你可以增加它们,因为你是root。
好的,那不是它。 Attemtp#2:使用free -m
查看剩余的内存量。另一个过程可能是吃太多了,我们将通过使用free
确保这是问题。