Ограничение памяти с ошибкой 500 — только для использования ArrayCollection в Twigu Symfony 4 — Linux Mint 19

он пишет вам с проблемой, с которой я столкнулся впервые в жизни и в которой не разбираюсь. Итак перейду к делу: проблема возникает в Twigu Symfony 4 но я не совсем понимаю, что на самом деле правда... но наверное моя конфигурация, работает на Linux Mint 19 php 7.3 (проверено также на 7.3 и такой же) apache2. Ошибка возникает только локально на тестовом сервере с гораздо большими ограничениями memory_limit такой ошибки не имеет. Локально эта ошибка проявляется в браузере Google Chrome выдает ошибку на белом фоне Сервер xyz.localhost сейчас не может обработать этот запрос. ОШИБКА HTTP 500, а в журналах я получаю:

[Sat Feb 23 20:26:17.700935 2019] [php7:error] [pid 2350] [client ::1:41434] PHP Fatal error:  Allowed memory size of 1153433600 bytes exhausted (tried to allocate 1071661056 bytes) in /var/www/xyz/vendor/twig/twig/lib/Twig/Extension/Debug.php on line 50, referer: http://xyz.localhost/ 
[Sat Feb 23 20:26:17.702800 2019] [php7:error] [pid 2350] [client ::1:41434] PHP Fatal error:  Allowed memory size of 1153433600 bytes exhausted (tried to allocate 1071669248 bytes) in /var/www/xyz/vendor/symfony/debug/ExceptionHandler.php on line 177, referer: http://xyz.localhost/

В php.ini я установил memory_limit на 512M, 1000M и на -1 (у меня 12GB Ram на ноутбуке) и никакие настройки не помогли мне добавить с тестовым сервером set memory_limit = 64M и эта подстраница работает без проблем, проблема только происходит и я отключаю локально. Я не храню базу данных локально, я использую точно такую ​​же базу данных, которую использует тестовый сервер (настройки в env идентичны), поэтому запросы к базе данных идут на внешний сервер. Существуют ли другие конфигурации в системе, которые могут повлиять на это?

Проверив код, вызывающий эту ошибку, я определил, что все идет к

{% for data in dataInput['element_2'].getDataForThisElement() %}

где getDataForThisElement() возвращает ArrayCollection. Если я вызову этот метод в Twig, он получит ошибку 500, если я сделаю это в контроллере, и я сделаю это для каждого элемента массива. Я легко могу сбросить эти данные и в Twig, они выливаются даже при наличии в массиве одного элемента. Я специально создал базу, чтобы проверить, возникнет ли проблема, и в локальной базе данных проблема также возникает. Где мне искать решение?

1000М все равно мало. Он пытается выделить 1072 МБ. Вероятно, вам нужно изменить свой код, чтобы вы не пытались хранить так много данных в своей рабочей памяти. Я не могу дать вам конкретный совет, не видя кода.

tshimkus 24.02.2019 13:53

В файле /etc/php/7.2/apache2/php.init я установил memory_limit = 2048M, перезапустил сервер через sudo service apache2 stop и sudo service apache2 start, и я получил разрешенный размер памяти 2147483648 байт (попытался выделить 1071722496 байт). )

Adrian S 24.02.2019 14:01

Должен ли ваш код хранить все эти данные в памяти или есть способ разбить их на более мелкие пакеты и сбросить переменные по ходу работы?

tshimkus 24.02.2019 14:06

Тот же код работает на сервере, на котором установлено memory_limit=64M и я не могу его понять. Он читает данные из базы данных с помощью docrin, и в Twigu я отображаю данные, которые есть в таблице, которую я прочитал, и данные, которые имеют отношение к этой таблице. В контроллере я легко могу сбросить эти данные, проблема проявляется только на моем компьютере, я постараюсь получить код максимально быстро

Adrian S 24.02.2019 14:23
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
118
0

Другие вопросы по теме