Linux — фатальная ошибка PHP: допустимый размер памяти в /var/www/html/vendor/composer/ClassLoader.Stack переполнении

Laravel 4.2, Amazon ec2 Linux

Фатальная ошибка PHP:

Allowed memory size of 262144 bytes exhausted (tried to allocate 3072 bytes) in /var/www/html/vendor/composer/ClassLoader.php on line 78

-1

Решение

TL; DR Вы должны увеличить свой memory_limit установка в php.ini. Вы едва позволяете своим сценариям использовать какую-либо память вообще.

Сообщение об ошибке Allowed memory size of 262144... означает, что у вас есть memory_limit настройка 256 кб. Это слишком низко. Для большинства полезных приложений вам нужно как минимум несколько МБ. Я хотел бы начать с 8 МБ и посмотреть, как оно идет.

Изменить memory_limit установка. Теоретически, вы можете сделать это двумя способами: (1) отредактировать php.ini или (2) использовать ini_set(),

На практике вы не всегда можете использовать ini_set('memory_limit', value);, Во-первых, некоторые расширения, такие как suhosin, не позволяют сценариям устанавливать memory_limit в этом случае. Во-вторых, вы должны быть осторожны, как вы это делаете. Например, вы предложили использовать ini_set('memory_limit', '1G');, Но стенография (K, M, G) работает только в php.ini, а не в ini_set. Вам нужно будет ввести фактическое количество байтов (например, 1073741824). Также, 1G довольно чрезмерно для большинства целей; очень, очень немногим не вредоносным PHP-скриптам нужно что-то подобное. Даже довольно тяжелые фреймворки, такие как WordPress, обычно работают хорошо в пределах 64 МБ или около того, даже если загружено множество плагинов.

Выясните, какой файл php.ini вы используете (нередко бывает несколько плавающих, в зависимости от того, как вы установили вещи). Вы можете сделать это двумя способами:

  1. Поместите это в файл .php и запустите: <?php phpinfo();
  2. В командной строке введите php -i | grep php.ini, Вы должны увидеть строку, которая говорит что-то вроде Loaded Configuration File => /etc/php.ini (вывод может варьироваться в зависимости от системы, конечно).

Отредактируйте только что найденный файл, изменив строку, начинающуюся с memory_limit = к чему-то более подходящему, например

memory_limit = 8M

Не стесняйтесь увеличивать это число по мере необходимости, но я бы рекомендовал начать с малого (не 1G) чтобы случайно не поставить свой сервер на колени.

Одно предостережение: если это машина для тестирования / разработки и вы используете отладчик или профилировщик, такой как xdebug, вы можете захотеть начать намного выше, и 1G не безумен Но не начинайте с такого большого числа на производственной машине; пробейся к этому.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru