php --help приводит к ошибке исчерпания памяти PHP в Ubuntu

Неустранимая ошибка PHP: разрешенный размер памяти 262144 байт исчерпан (попытка выделить 523800 байт) в неизвестном в строке 0

То же самое происходит с "php5 --help"

Я уже изучил это и прочитал, что мне следует: 1) увеличить лимит памяти в php.ini — он составляет 128 МБ во всех экземплярах php.ini — должно быть достаточно для запуска справки php cli 2) сделать скрипт более эффективным с точки зрения использования памяти — явно не относится к --help

Пожалуйста, помоги, если можешь ?


person Mark Soper    schedule 14.01.2011    source источник
comment
Вы скомпилировали или установили с помощью apt?   -  person Mahmoud Al-Qudsi    schedule 15.01.2011
comment
я только что установил свой memory_limit на 32 МБ, используя php 5.3, и --help отлично работает в 32-разрядной версии Windows 7, вот мой вывод: pastebin.com/4bNbEMrF, это очень маленький вывод, зачем ему 128, если он не протекает.   -  person RobertPitt    schedule 15.01.2011


Ответы (6)


Проверьте файл php.ini для PHP CLI (/etc/php5/cli/php.ini).

Убедитесь, что в объявлении memory_limit установлены единицы измерения:

memory_limit = 32M

нет

memory_limit = 32

Это исправило это для меня. Я надеюсь, что это сработает и для вас.

person losttime    schedule 18.04.2011
comment
это тоже была моя ошибка. Я сделал 128 МБ вместо 128 МБ. - person joelpittet; 03.12.2011
comment
Я также поставил 128MB вместо 128M (так в файле написано по умолчанию!) - кто-то должен это исправить... - person Will Warren; 03.04.2013

Я предполагаю, что вы используете недавнюю установку Linux. Я использую Ubuntu, но любой дистрибутив Debian, такой как Linux, будет похож, и другие дистрибутивы также не будут иметь больших отличий.

В /etc/php5/ у меня есть следующие каталоги конфигурации:

root@delphic:/etc/php5# ls -la
total 20
drwxr-xr-x  5 root root 4096 2011-01-15 00:52 .
drwxr-xr-x 92 root root 4096 2011-01-15 00:51 ..
drwxr-xr-x  2 root root 4096 2011-01-05 10:55 apache2
drwxr-xr-x  2 root root 4096 2011-01-15 00:52 cli
drwxr-xr-x  2 root root 4096 2011-01-15 00:51 conf.d
root@delphic:/etc/php5# cd cli
root@delphic:/etc/php5/cli# ls -al
total 76
drwxr-xr-x 2 root root  4096 2011-01-15 00:52 .
drwxr-xr-x 5 root root  4096 2011-01-15 00:52 ..
lrwxrwxrwx 1 root root     9 2011-01-15 00:52 conf.d -> ../conf.d
-rw-r--r-- 1 root root 67457 2011-01-12 19:51 php.ini 
root@delphic:/etc/php5/cli# grep memory php.ini 
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = -1

Вы уверены, что также изменили лимит памяти CLI?

Если вы используете виртуальный хостинг, вам придется обратиться в их поддержку за помощью в изменении ограничений или попросить их выяснить, почему php потребляет так много памяти даже в командной строке.

person ramdyne    schedule 15.01.2011

Текст

Допустимый объем памяти 262144

Предполагает, что PHP не думает, что ограничение памяти составляет 128 МБ. Возможно, вы пропустили какой-то файл php.ini? Не могли бы вы опубликовать свой php.ini в Интернете?

person Vilx-    schedule 14.01.2011

Какая странная вещь, инструкции в ini говорят использовать MB, но это не сработало бы для меня, стандартная установка apt-get, только другой бит, который я добавил, был APC. Я не мог понять, что может быть не так, к счастью, некоторые комментарии выше предлагали просто использовать M

Похоже на ошибку ИМО, особенно учитывая инструкции в ini.

ini говорит следующее: //Максимальный объем памяти, который может потреблять скрипт (128 МБ)

Но у меня сработало только это :/ 228M

person Macronomicus    schedule 27.03.2012

Значение в моем файле php.ini было 1024 МБ, и я все еще получал сообщение об ошибке. Что я сделал, чтобы исправить, так это изменить его на 1024 МБ, что странно, поскольку в тексте примера указано 128 МБ.

person fragmint    schedule 15.09.2012

Можете ли вы запустить php -i, чтобы получить информацию о PHP? Возможно, вы загружаете не тот файл php.ini, который ожидаете, и лимит памяти намного ниже. Хотя действительно странно, что PHP CLI использует PHP для вывода справки CLI.

Обновление Вы, вероятно, тоже не сможете запустить php -i, но php --ini может по крайней мере показать вам, какой INI-файл (если он есть) используется.

person coreyward    schedule 14.01.2011
comment
Спасибо, Кори. Запуск php -i и php --ini не работает, но php -ini работает! Соответствующие выходные строки выглядят следующим образом: Файл конфигурации (php.ini) Путь => /etc/php5/cli & memory_limit => 128M => 128M Я скоро загружу весь вывод. - person Mark Soper; 15.01.2011
comment
Я не вижу способа загрузить файл сюда, и вывод php -ini будет намного превышать ограничение на количество символов для этого поля. Если кто-то думает, что это будет полезно, и готов взглянуть, я найду способ поделиться им. - person Mark Soper; 15.01.2011