He intentado establecer el límite en php.ini pero siempre obtengo el mismo error:
Se agotó el tamaño de memoria permitido de 262144 bytes (se intentó asignar 341351 bytes) en Desconocido en la línea 0
Puedo solucionar esto llamando a php -d memory_limit=2048M script.php
Pero no sé qué hacer con composer.
Como PHP-CLI tiene un archivo ini diferente, esto a menudo conduce a una configuración incorrecta.
Lo que podemos hacer, para un script de shell PHP « unix shebang », es establecer claves ini sobre la marcha directamente en la línea shebang, así:
#!/usr/bin/php -d memory_limit=512M <?php phpinfo(); exit; Luego, para ver si php había entendido, usando phpinfo() :
./myphpProg | grep memoryLa salida de shell correcta debe contener:
memory_limit => 512M => 512M man php
-d foo[=bar] Define INI entry foo with value bar
Sin usar el mecanismo shebang de Unix, podemos pasar de manera similar uno (o muchos) argumentos -d en la línea de comando, o un script de inicio dedicado:
php -d memory_limit=512M myphpProgAgregue esto en la parte superior de su código de PHP ini_set("memory_limit", "2048M"); en su script PHP. Asegúrese de aumentar memory_limit según sus necesidades.
Si sigue recibiendo este tipo de mensaje de error de exhausted memory . puede usar ini_set("memory_limit", "-1"); . Esto establecerá su límite de memoria sin límite.
Nota: Esto establecerá su límite de memoria sin límite. El límite de memoria es lo que depende de su
OSyRAM, no dePHP.Nota: también asegúrese de que si está haciendo algo en su entorno de producción en su secuencia de comandos PHP, cuyo trabajo es seguir agregando datos a la secuencia de comandos, ya sea en sus variables estáticas ( Ejemplo:
gathering multiple CSV's data) o algunas matrices, entonces puede conducir a la falla de esa máquina virtual o del proceso PHP en caso de agotamiento completo de la memoria.
El archivo php.ini predeterminado para la CLI en xampp se encuentra en %xamppRoot%\php\php.ini, no en %xamppRoot%\apache\bin\php.ini