命令行上的PHP显示“Out of Memory”,没有文件名,行号或内存值
发布时间:2020-12-13 14:02:41 所属栏目:PHP教程 来源:网络整理
导读:我最初发布于 https://stackoverflow.com/questions/9665189/php-on-command-line-displays-out-of-memory,但建议在此发布. 当脚本中的内存不足时,这不是正常的致命错误,因为它没有提供文件名,行号或使用的内存量.每当我尝试在命令行上运行php时,它只是说“
我最初发布于
https://stackoverflow.com/questions/9665189/php-on-command-line-displays-out-of-memory,但建议在此发布.
当脚本中的内存不足时,这不是正常的致命错误,因为它没有提供文件名,行号或使用的内存量.每当我尝试在命令行上运行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(最终版),它是64位和PHP 5.3.10.它是一个专用的服务器. 我尝试过运行ulimit -a,如同建议的那样,这是输出: core file size (blocks,-c) 200000 data seg size (kbytes,-d) 200000 scheduling priority (-e) 0 file size (blocks,-f) unlimited pending signals (-i) 37888 max locked memory (kbytes,-l) 32 max memory size (kbytes,-m) 200000 open files (-n) 100 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) 35 virtual memory (kbytes,-v) 200000 file locks (-x) unlimited root上的free -m给出了: total used free shared buffers cached Mem: 3824 3714 110 0 142 2632 -/+ buffers/cache: 939 2885 Swap: 3490 0 3490 从顶部开始的内存使用情况: Mem: 3916648k total,3797056k used,119592k free,145820k buffers Swap: 3574452k total,168k used,3574284k free,2686844k cached 更新:昨天重新启动服务器,它在下午的剩余时间工作.然而,今天它正在做同样的事情. 运行“strace php test.php”(一个存在的文件),它会持续一段时间,但putty的最后一页左右是这样的: fstat(3,{st_mode=S_IFREG|0644,st_size=100030,...}) = 0 mmap(NULL,100030,PROT_READ,MAP_PRIVATE,3,0) = 0x2ad3ce0af000 close(3) = 0 open("/lib64/libnss_dns.so.2",O_RDONLY) = 3 read(3,"177ELF211 3 > |