getting - laravel foreach index
TamaƱo de memoria permitida de 536870912 bytes agotados en Laravel (5)
En el mismo sistema, puedo hacer call a db, y no hay problema, pero en algún caso (con la tabla más grande), obtengo
"PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 32 bytes) in /home/forge/sximo.sp-marketing.com/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 311
Depuré el código y el problema es una consulta básica:
" SELECT partidascapturainfo.* FROM partidascapturainfo WHERE partidascapturainfo.partidascapturainfoid IS NOT NULL ORDER BY partidascapturainfoid asc LIMIT 0 , 10 "
Cuando ejecuto la consulta en un cliente Mysql, la consulta se ejecuta en 0.17s
Ya he configurado memory_limit a 2048, reinicio nginx y mi consulta solo devuelve 10 filas ...
Aquí están mis 10 filas:
123044,42016,249,3762,2,,0
123045,42016,249,3761,2,,0
123046,42016,249,3764,1,,0
123047,42016,249,3765,,,0
123048,42016,249,3775,,,0
123049,42016,249,3771,3,,0
123050,42016,249,3772,3,,0
123051,42016,250,3844,HAY,,0
123052,42016,255,3852,,,0
123053,42017,249,3761,1,,0
¿¿¿Tienes idea de lo que está pasando???
Comparta las líneas de código ejecutadas cuando realiza esta solicitud. Puede haber un error en tu código.
Además, puede cambiar el límite de memoria en su archivo php.ini a través de la configuración memory_limit
. Intente doblar su memoria a 64M. Si esto no funciona, puede intentar doblarlo nuevamente, pero apostaría que el problema está en su código.
ini_set(''memory_limit'', ''64M'');
Puedes intentar editar /etc/php5/fpm/php.ini:
; Old Limit
; memory_limit = 512M
; New Limit
memory_limit = 2048M
Es posible que deba reiniciar nginx
También puede tener un bucle infinito en alguna parte. ¿Puedes publicar el código que estás llamando?
Me sucedió con laravel 5.1 en php-7 cuando estaba ejecutando muchos casos de prueba (unitest).
La solución fue: cambiar memory_limit en php.ini, pero debería ser el correcto. Entonces necesitas un servidor responsable, ubicado allí:
/etc/php/7.0/cli/php.ini
así que necesitas una línea con
memory_limit
Después de eso, debes reiniciar el servicio php
sudo service php7.0-fpm restart
para comprobar si se modificó con éxito, ssh en homestead y desde la línea de comandos ejecutar esto:
php -i
el informe contiene la siguiente línea
memory_limit => 2048M => 2048M
Ahora los casos de prueba están bien.
Me doy cuenta de que hay una respuesta aceptada, y aparentemente fue el tamaño de la memoria elegido o la sugerencia de bucle infinito lo que resolvió el problema para el OP.
Para mí, agregué una matriz al archivo de configuración anteriormente e hice algunos otros cambios antes de ejecutar el programa artesanal y obtener el error de memoria insuficiente y no ayudó a aumentar la cantidad de memoria. Lo que resultó ser una coma faltante después de la matriz que agregué al archivo de configuración.
Estoy agregando esta respuesta con la esperanza de que ayude a alguien a descubrir qué podría estar causando un error de memoria. Estoy usando laravel 5.4 bajo MAMP.
Esto me sucedió mientras usaba php 7. Cambié el servidor a php 5.6 y eso resolvió el problema.