Когда я вхожу в систему в своем веб-приложении, он показывает ошибку, например:
Неустранимая ошибка: разрешенный размер памяти 134217728 байт исчерпан (пытался выделить 87 байт) в /gt/2.ps.fo/home/hft/domains/console.fo.spalgo.com/public_html/cake/libs/model/datasources /dbo/dbo_mysql.php в строке 775
Есть ли решение для решения этой проблемы? Почему я получаю эту ошибку?
Похоже, вы выделили больше памяти, чем позволяет PHP . Измените параметр memory_limit
настройках php.ini
вашего сайта, как описано на связанной странице.
Другая вероятность (менее вероятно) заключается в том, что вы нажмете ограничения ресурсов setrlimit(2)
для своего пользователя или группы. Проверьте /etc/security/limits.conf
на лимиты, которые могут быть установлены для вашего веб-сервера, а также любые сценарии инициализации, запускающие среду вашего сервера и среду интерпретатора PHP.
Первый пример, который я нашел путем поиска SO для «PHP out of memory», – это
Попробуйте использовать echo
вместо того, чтобы сначала хранить то, что вы печатаете в переменной.
ini_set('memory_limit', '-1');
Глядя на файл, в котором произошла фатальная dbo_mysql.php
( dbo_mysql.php
), я полагаю, что ваш вызов извлекает данные из dbo_mysql.php
данных.
Кроме того, глядя на ограничение памяти, он отображает 134217728 байт, что составляет 128 МБ, поэтому я думаю, что независимо от того, что делает ваш вызов API, он пытается извлечь много данных, которые превышают лимит, выделенный для каждого скрипта.
Например, если последний скрипт в стеке вызовов API должен был использовать 20MB
для своих нужд, а затем использовать шины для извлечения данных из БД стоимостью 115MB
, ваш скрипт будет пытаться выделить 7MB
что на 7 7MB
больше предела и, таким образом, вызывает Fatal Exception
.
Итак, я вижу несколько вещей, чтобы проверить / сделать:
memory_limit
значение memory_limit
в файле php.ini