tutorial sirve que programacion para lenguaje descargar caracteristicas php

php - sirve - Tamaño de memoria permitida de 262144 bytes agotados(intentó asignar 24576 bytes)



php tutorial (4)

Me estaba volviendo loco con esto.

Recibí el siguiente mensaje:

Allowed memory size of 262144 bytes exhausted (tried to allocate 24576 bytes)

LISTA DE QUEHACERES

Marque phpinfo (), obtenga la ruta php.ini correcta y edítela. Cambiar memory_limit a

memory_limit = 128M

Asegúrese de que el valor memory_limit cambie con phpinfo () con el resultado:

memory_limit 128MB 128MB

Verifique .htaccess y agregue (no es necesario)

php_value memory_limit 128M

Y también para cambiarlo a través de php como tal (antes de la línea de error):

ini_set(''memory_limit'',''128M'');

Dice en todas partes que la memoria está configurada en 128M, ¿pero aún así obtiene ese error?

El error está en la biblioteca Swift (biblioteca para enviar correos electrónicos), en abstractSmtpTransport.php, por lo que no es mi código el que se supone que funciona.

¿¿¿Algunas ideas???

Editar: Sí, el anterior se hizo reiniciando apache.

EDIT 2: @patrick, agregó que no se hizo eco de nada

Probado con un valor menor, 28M int en cada archivo, reinicio de apache, mismo error (phpinfo mostró un nuevo valor)

intentado con -1, reiniciar y el mismo error.

EDIT 3: ¿no es raro que la memoria permitida sea más grande que la memoria asignada? (a pesar de que el tamaño de la memoria permitida está muy por debajo de la memoria real permitida)


El valor de 262.144 bytes es la clave del diagnóstico. Verás que aparece este número mágico en preguntas de PHP por todos lados. ¿Por qué? Porque ese es el valor que PHP tendrá como límite de memoria si intenta actualizar el límite con un valor que no puede usar. Una cadena vacía producirá este límite de memoria, al igual que una notación de unidad incorrecta como ''128MB'' en lugar de la correcta ''128M''.

262.144 bytes es exactamente 256 Kibibytes. Por qué PHP corre hacia ese valor cuando se confunde está más allá de mí.

¿No es raro que la memoria permitida sea más grande que la memoria asignada?

La cantidad asignada que se muestra es solo el intento de asignación más reciente, el que entró en conflicto con el límite de memoria. Consulte Tamaño de memoria permitido en PHP al asignar menos .


Intentaba subir el límite de Wordpress en las cargas de medios. Seguí los consejos de algunos blogs que no voy a mencionar para aumentar el límite de 64 MB a 2 GB.

Hice lo siguiente:

Creado un archivo (php.ini) en WP ADMIN con los siguientes enteros:

upload_max_filesize = 2000MB post_max_size = 2100MV memory_limit = 2300MB

Inmediatamente recibí este error al intentar iniciar sesión en mi tablero de Wordpress para comprobar si funcionó:

"Tamaño de memoria permitido de 262144 bytes agotados (intentó asignar 24576 bytes)"

La información anterior en esta cadena me ayudó tremendamente. (Stack por lo general hace BTW)

Modifiqué el archivo PHP.ini a lo siguiente:

upload_max_filesize = 2000M post_max_size = 2100M memory_limit = 536870912M

La principal diferencia fue usar solo M, no MB, y establecer ese límite de memoria alto.

Tan pronto como guardé el archivo PHP.ini modificado, lo guardé, volví a iniciar sesión y reapareció la pantalla de inicio de sesión.

Entré y revisé las cargas de medios, ys bang:

Imagen que muestra la carpeta multimedia de twordpress Casilla "Agregar nuevo", con los límites indicados como "TAMAÑO MÁXIMO DE CARGA DE CARGA: 2 GB"

Aún no reinicié Apache ... pero todo se ve bien.

Gracias a todos.



Veo que mi problema es un poco diferente al tuyo, pero publicaré esta respuesta en caso de que ayude a otra persona. Estaba usando MB como abreviatura en lugar de M al definir mi memory_limit, y php lo ignoraba silenciosamente. Lo cambié a un número entero (en bytes) y el problema fue resuelto.

Mi php.ini cambió de la siguiente manera: memory_limit = 512MB a memory_limit = 536870912 . Esto solucionó mi problema. Espero que ayude con alguien más! Puedes leer here la taquigrafía de php.

¡Buena suerte!

Editar

Como señala Yaodong, puedes usar la abreviatura correcta, "M", en lugar de usar valores de bytes. Modifiqué los valores de byte para depuración y luego no me molesté en volver a cambiarlo.