Desarrollo web

Aumentar el límite máximo de memoria (memory_limit) del servidor Apache

Luego de la liberación de la versión 3.0 de WordPress muchos wemasters han estado teniendo problemas con el límite máximo de memoria que pueden usar sus blogs para ejecutarse en el servidor. Resulta que algunos servidores, principalmente los gratuitos, tienen configurado un límite máximo de memoria (memory_limit) de 32M siendo que las nuevas versiones de WP necesitan al menos de 64M para ejecutarse sin problemas. Las formas para aumentar el límite de memoria son varias, siendo la principal modificar el archivo php.ini en el cual están los parámetros generales con los que se ejecuta PHP. Por supuesto, los servidores gratuitos no permiten modificar el archivo php.ini por lo que hablaré de dos formas alternativas de hacerlo:

Editando el .htaccess para modificar el límite máximo de memoria que pueden usar para ejecutarse todos los archivos del servidor, ó…

Modificando cada script PHP al que deseemos modificar dicho límite.

Para hacerlo con el .htaccess se debe agregar a este archivo las siguientes líneas;

#Set Memory Limit
php_value memory_limit 64M

Esto llevará el límite máximo de memoria a 64M, pudiéndose colocar un valor más elevado si el script que deseamos ejecutar lo requiere.

Para hacer lo mismo, pero esta vez sólo con el o los scripts PHP que requieren de un límite mayor, agregamos las siguientes líneas en la parte superior de el o los archivos;

<?php ini_set("memory_limit","64M");  
?>

Esto hará el mismo trabajo pero sólo tendrá efecto en el script donde se coloque.

Por último he de decir que algunos servidores gratuitos no permiten incluso modificar el límite máximo de memoria de esta forma, por ejemplo Zobyhost, cuyo máximo es de 32M no permite modificarlo, mientras que 000webhost, otro servidor gratuito, tiene su límite seteado a 64M pero este puede ser modificado si se quiere.

Para saber si tu servidor permite modificar el memory_limit crea un archivo “prueba.php” y coloca este código en él;

<?php 
echo ini_get("memory_limit"); 
ini_set("memory_limit","128M");
echo ini_get("memory_limit");
ini_restore("memory_limit"); 
echo ini_get("memory_limit"); 
?>

Luego súbelo al root de tu servidor y ábrelo desde el navegador que uses, tecleando http://www.tusitio.com/prueba.php

Deberá mostrarse entonces tres números, el primero es el valor de “memory_limit” de tu servidor, puede ser 32M ó 64M, si está permitido cambiar dicho valor aparecerá seguidamente 128M, y luego aparecerá nuevamente el valor por defecto, para resumir, al abrir el archivo en tu navegador verás esto;

32M 128M 32M, si está permitido cambiar el valor de “memory_limit” ó 32M 32M 32M de no estar permitido.

11 comentarios en «Aumentar el límite máximo de memoria (memory_limit) del servidor Apache»

  • Hola

    Lo primero gracias por el artículo que me arrojado alguna luz sobre lo que estaba buscando

    Tengo un problema con el mail de backup del plugin de wordpress
    Online Backup for WordPress

    el plugin intenta generar un backup con un mail de unos 12Mb de tamaño pero me dice

    ‘The amount of memory required to encode the backup into email format will use up more memory than PHP currently has available. Your backup is 12.91 MiB and PHP only has enough memory for a backup of approximately 3.84 MiB. Try reducing the size of your backup to this amount.’

    he seguido tu consejo y he probado el método de prueba.php en root y los valores que devuelve son 70M70M70M

    Parecen suficientes, no?

    Ahora me he quedado atascado aquí y no sé por donde seguir, cualquier idea, consejo, ayuda será bienvenida ! Gracias

    Respuesta
    • Hola Mikel, 70M de memoria es poco para que ese plugin funcione, una cosa que pasa con wordpress es que por sí mismo necesita mucha memoria para trabajar, y si además agregas un plugin como ese lo más probable es que te de error a menos que tengas un servidor dedicado. La mayoría de servidores sólo aprueban cierta cantidad de memoria y recursos para un blog y si usas plugins de este tipo aunque sea un servidor de pago podrían suspender tu cuenta. Puedes usar la técnica que aquí se muestra de modificar el archivo htaccess para intentar aumentar el límite de memoria pero si el plugin consume demasiados recursos y no tienes un servidor dedicado es mejor que trates de reducir el uso de plugins al mínimo posible para evitar problemas con tu proveedor de hosting.

      Respuesta
      • Muchas gracias Isaac

        Conoces algún otro wp-plugin de ese tipo (backup) que utilice menos recursos y que pueda enviar e-mails? He probado wpremote pero da problemas con el backup de algunos plugins y los desarrolladores no pueden resolver el «bug»

        Saludos

        Respuesta
        • Hola, todos los plugins para hacer respaldos consumen muchos recursos, lo único que te digo es que tal vez sea mejor hacer tus respaldos manualmente ya que es lo más seguro.

          Respuesta
  • Hola, por favor podrias precisar en que ubicacion debo colocar el codigo, ya que pongo y no funciona, tiene algun lugar en especial

    Respuesta
    • Hola Jesús, en la publicación se mencionan dos tipos de código que se puede usar, uno es para colocarlo en el archivo htaccess en tu servidor, pero si deseas usar un código en php puedes usar el otro, sólo que, como mencioné, hay algunos servidores tanto gratuitos como de pago que no permiten que el usuario modifique el límite de memoria y si ese es tu caso no importa qué código uses no te funcionará.

      Respuesta
      • tengo godaddy y no permite modificar le settings por problemas de permiso o porque el archivo esta en uso y el htaccess no me funciona

        Respuesta
        • Si no te funciona con el htaccess entonces tu hosting no permite modificar esos parámentros, debes ponerte en contacto con ellos y plantearles tu caso para ver si pueden hacer una ecepción.

          Respuesta
    • En el archivo htaccess o al principio del archivo php que quieras que trabaje con más memoria.

      Respuesta

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.