PHP в командной строке отображает «Недостаточно памяти» - PullRequest
1 голос
/ 12 марта 2012

Это не обычная фатальная ошибка, когда в скрипте не хватает памяти, так как она не дает имя файла, номер строки или объем используемой памяти.Он просто говорит «Недостаточно памяти» всякий раз, когда я пытаюсь запустить 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

Однако PHP через Apache работает абсолютно нормально.Я получаю эту ошибку только в интерфейсе командной строки.

На данном компьютере выполняется CentOS-версия 5.7 (финальная версия) и PHP 5.3.10.

РЕДАКТИРОВАТЬ: Iтолько что попытался запустить ulimit -a от имени пользователя root, как показано, и это вывод:

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

1 Ответ

2 голосов
/ 12 марта 2012

Это не сбой PHP, но ядро ​​не позволяет использовать процесс, использующий слишком много памяти.Используйте ulimit -a, чтобы увидеть, какие пределы установлены.Затем вы можете увеличить их, так как вы root.

Хорошо, это не так.Attemtp # 2: Используйте free -m, чтобы увидеть, сколько памяти осталось у вас.Другой процесс, вероятно, съедает слишком много, и мы собираемся убедиться, что это проблема, используя free.

...