Volver a la base de conocimiento
Webhostingphptroubleshooting

¿Cómo aumentar la memoria de PHP de su sitio?

El mensaje Allowed memory size of … bytes exhausted significa que un solo proceso de PHP pidió más memoria de la que permite el límite. Ese límite se aumenta en el panel de control de su alojamiento, por sitio; en WordPress puede añadirse además una línea en wp-config.php. Mire antes qué archivo aparece en el mensaje de error. Si el error surge de repente, casi siempre hay detrás un plugin o una importación, y aumentar el límite solo oculta el problema.

Qué dice el mensaje de error

Completo: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes), seguido de un nombre de archivo y un número de línea.

  • La primera cifra es el límite actual en bytes. 134217728 bytes son 128 MB.
  • La segunda cifra es lo que PHP quería reservar de más en ese instante. No dice nada del consumo total.
  • El archivo y la línea muestran dónde se agotó la memoria.

En una web en producción el visitante suele ver solo una página en blanco, un código de error 500 o, en WordPress, el aviso de un error crítico. El mensaje real está entonces en el registro de errores. Más sobre esos códigos de estado en qué significan los códigos de error 403, 404 y 500.

Cuándo ocurre

Con maquetadores visuales pesados, importaciones grandes, tiendas online con muchos productos y el procesamiento de fotos grandes. Rara vez en una web corporativa corriente.

Dónde se ajusta el límite

  1. En el panel de control. En WWW4 el límite de memoria de PHP se ajusta por sitio en el panel de control, que se abre desde el portal de clientes. Hasta dónde puede subir depende del plan. Es la vía más fiable.
  2. En wp-config.php, para WordPress. Añada, encima de la línea que le indica que deje de editar, esta línea: define('WP_MEMORY_LIMIT', '256M'); WordPress pide por sí mismo solo 40 MB para la parte pública, 64 MB en un multisitio y 256 MB en la administración. Si el límite del servidor ya es más alto, esta línea no cambia nada. Si el alojamiento no admite un valor mayor, tampoco.
  3. En un archivo .user.ini. En los alojamientos que lo permiten, coloque en la carpeta raíz del sitio un archivo .user.ini con la línea memory_limit = 256M. PHP solo relee ese archivo, por defecto, cada cinco minutos. El php.ini central del servidor no puede modificarlo usted en un alojamiento compartido.

Una línea con php_value en el archivo .htaccess solo funciona cuando PHP se ejecuta como módulo de Apache. Si no, toda la web da de inmediato un error 500.

Comprobar que se aplica el nuevo valor

En WordPress, mire en la administración la herramienta de salud del sitio, en la pestaña de información, dentro del apartado del servidor: ahí figura el límite de memoria de PHP que está realmente en vigor.

Por qué aumentar no siempre es la solución

Una web que de pronto necesita mucha más memoria suele tener un problema y no una carencia: un plugin que lo carga todo a la vez, una importación que no trabaja por partes, una función que se llama a sí misma sin fin. En este último caso se agota cualquier límite, por alto que lo ponga. Aumentarlo oculta el problema.

Además, el límite se aplica por proceso de PHP, y cada visitante que pide una página al mismo tiempo inicia su propio proceso.

Cómo encontrar la causa

  1. Lea la ruta del mensaje de error. Si aparece wp-content/plugins seguido del nombre de una carpeta, ese es el plugin en el que se agotó la memoria. Suele ser también el culpable, pero no siempre: a veces es otro plugin el que llena la memoria.
  2. Consulte el registro de errores en el panel de control. En WordPress, ponga además en wp-config.php WP_DEBUG y WP_DEBUG_LOG en true y WP_DEBUG_DISPLAY en false. Los errores se escriben entonces en debug.log, en la carpeta wp-content. Desactívelo cuando termine de buscar.
  3. Repase qué cambió. Una actualización, un plugin nuevo, una importación grande, un tema nuevo. En adelante pruebe primero las actualizaciones; vea cómo hacer actualizaciones de WordPress con seguridad.
  4. Desactive los plugins uno a uno hasta que el error desaparezca. Si ya no puede entrar en la administración, renombre la carpeta del plugin sospechoso por FTP o con el administrador de archivos.
  5. Mida el consumo. El plugin Query Monitor muestra cuánta memoria se usó en cada página.
  6. Reduzca la tarea. Importe en partes más pequeñas.

El tope de su plan

El límite máximo de memoria forma parte de su plan de alojamiento. El plan más pequeño está pensado para una web corporativa o un blog; una tienda online o un sitio con un maquetador pesado piden un plan mayor. Los planes están en precios de hosting. Si también ahí choca de forma estructural con el máximo, el siguiente paso es un servidor propio: lea qué es un VPS y cuándo conviene cambiar.

Preguntas frecuentes

He aumentado el límite, pero el error sigue. ¿Y ahora?

Mire la primera cifra del mensaje de error. Si no ha cambiado, su ajuste no se está aplicando: el archivo está en la carpeta equivocada o su plan no admite un valor mayor. Si la cifra sí ha subido y aun así la memoria se agota, lo que busca es una fuga y no una carencia.

¿Cuánta memoria de PHP necesita WordPress?

WordPress en sí necesita poca. El consumo lo determinan los plugins y el tema; mida por tanto su propia web en lugar de fiarse de una regla general.

¿Es el límite de memoria lo mismo que el tamaño de subida?

No. Las subidas dependen de upload_max_filesize y post_max_size. Una subida fallida no se arregla con más memoria.

¿No lo consigue?

Envíenos a través de contacto el nombre de dominio, el mensaje de error completo y la hora. Lo miramos con usted en el registro del servidor.

#php memory limit#memoria agotada#pagina en blanco wordpress
¿No consigues resolverlo?

¿En tu caso ocurre algo distinto a lo descrito arriba, o te quedas atascado? Ponte en contacto con tu nombre de dominio o tu número de cliente a mano y lo miramos contigo.

Contactar con el soporte
Llamar ahora
Enviar un correo