Fatal error: Allowed memory size of...

error php¿Te ha ocurrido éste error? pues es muy común que suceda cuando estás desarrollando algún sitio web utilizando PHP. El valor que te muestre puede ser diferente por que  depende de la versión de php y la distribución de Linux que éstes usando y significa que PHP ha excedido el límite de memoria permitida por el servidor.

Para re-configurar éste parámetro existen varias alternativas para hacerlo.

1. Modificando globalmente el parámetro memory_limit del php.ini

Localiza el archivo php.ini dentro de los archivos de configuración del servidor, ábrelo con cualquier editor de texto, busca la línea donde está escrito y cambia el valor en base a tus necesidades, por ejemplo:

memory_limit = 32M

Necesitas un nivel de acceso elevado dentro del hosting. De lo contrario te será imposible encontrar el archivo php.ini ya que al modificar ésta configuración usando éste método afectará a todos los proyectos php del servidor. Si lo cambias deberás reiniciar el servidor para que los cambios surtan efecto.

Ten en cuenta que éste método tiene su lógica, te recomiendo que no lo incrementes demasiado porque existen proyectos php mal desarrollados que en cualquier momento podrán saturar tu sistema.

Nota: Si sabes lo que estás haciendo y quieres deshabilitar ésta configuración puedes modificar éste valor a -1.

 

2. Modificando el parámetro memory_limit para un solo folder/sitio web. (Recomendado)

Si tu servidor web está usando a php como CGI(suexec) o simplemente no tienes el acceso al archivo php.ini entonces puedes insertarlo directamente en la raíz del sitio web que te está ocasionando el error.

Abre cualquier editor de texto y pega el siguiente código:

memory_limit = 32M

Después guárdalo como “php.ini” y súbelo.

Con éste método la reconfiguración se aplicará únicamente a los archivos que estén dentro del directorio del sitio y no necesitas reiniciar el servidor, el cambio es inmediato.

 

3. Modificando el parámetro memory_limit usando .htaccess para un solo folder/sitio web.

Otra alternativa para modificarlo es insertando el código:

php_value memory_limit 32M

dentro del archivo .htaccess ubicado en la raíz del sitio web. Con éste método la reconfiguración se aplicará únicamente a los archivos que estén dentro del directorio del sitio y no necesitas reiniciar el servidor, el cambio es inmediato.

 

4. Modificando el parámetro memory_limit dentro de un proyecto php.

Para un mayor control de la situación puedes definir la directiva dentro de algún proyecto php.  Utiliza ésta línea en tu código:

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

 

La ventaja de éste método es que tienes mayor control del proyecto php y asignar éste valor solamente donde es necesario. Con éste método la reconfiguración se aplicará inmediatamente.

Nota: Toma en cuenta que para usar éste parámetro la versión de php que usas debe de compilar la opción: –enable-memory-limit. Normalmente la mayoría de las versiones lo incluyen por default, pero si éste método no funciona como esperas entonces verifica que el php sea compilado adecuadamente.