Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2348617 bytes) in /servidoresadmin.php on line 10
Cuando recibimos el error de php Allowed memory size of bytes exhausted significa que el límite establecido en memoria ram para ejecutar php ha sido sobrepasado.
Para solucionar el error debemos asegurarnos que el límite de éste parámetro en php.ini ha sido incrementado:
Cómo aumentar el memory limit global de php:
Primero debemos conocer cuál es nuestro límite definido en php.ini, para ello crearemos un fichero phpinfo.php para que nos muestre nuestro límite y así poder incrementarlo:
<?php
// Muestra toda la información, por omision INFO_ALL
phpinfo();// Mostrar solo la información de modulos.
// phpinfo(8) produce el mismo resultado.
phpinfo(INFO_MODULES);?>
Abriremos mediante navegador dominio.com/phpinfo.php y buscaremos el parámetro memory_limit
Como vemos en la imagen nuestro límite es de 128M. Lo vamos a incrementar por ejemplo hasta 512M
Editamos el php.ini de nuestro php:
Dónde encontrar el archivo php.ini?
/etc/php5/apache/php.ini para php5
/etc/php5/fpm/php.ini php php5 con fpm
/etc/php/7.0/fpm/php.ini para php7
/etc/php/7.1/fpm/php.ini para php7.1
Editamos el archivo, aumentando el límite por ejemplo:
memory_limit = 512M ; Máxima cantidad de memoria que un script puede consumer
Una vez realizado el cambio reiniciamos php:
service php5-fpm restart
service php7.0-fpm restart
service php7.1-fpm restart
o
service apache2 restart si trabajamos con apache.
Luego, recargamos la página phpinfo.php para verificar que el cambio se ha realizado.
Una vez estamos seguros que el parámetro de php memory_limit ha sido incrementado, debemos asegurarnos que no hay ninguna restricción en el mismo código del cms que estamos ejecutando.
Incrementar límite de memoria memory_limit en Prestashop:
Por ejemplo en prestashop, podemos tener un límite puesto en el archivo /config/config.inc.php
|
Si por código limitamos a un valor inferior al declarado en php.ini, seguiremos limitados por el valor menor en el límite de memoria en la ejecución de php.
Incrementar WP_MEMORY_LIMIT_Wordpress:
En el caso de wordpress para aumentar la memoria de ejecución debemos asegurarnos que el archivo wp-config.php no nos limita por debajo de lo declarado en php.ini
define(‘WP_MEMORY_LIMIT’, ‘128M’);
Incrementar php_value memory_limit desde .htaccess de Apache:
Añadimos la siguient línea dentro de nuestro archive .htaccess
php_value memory_limit 512M
Incrementar memory_limit para cualquier código php o otros cms:
Debemos asegurarnos que no hay ninguna definición de memory_limit en nuestro código, para ello buscaremos dentro del código la línea:
ini_set(‘memory_limit’, ‘512M’);
Incrementar el límite de memoria memory_limit desde Plesk:
Para modificar el valor de memory_limit para un dominio en Plesk, vamos a Plesk > Subscriptions > servidoresadmin.com > PHP Settings > memory_limit y ponemos el nuevo valor, por ejemplo, 1024M.
Para modificar el límite global del server de memory_limit, desde Plesk:
Vamos a Plesk > Tools & Settings > PHP Settings > PHP handler > php.ini > buscar memory_limit y poner un nuevo volor, por ejemplo 1024M.
Incrementar el límite de memoria memory_limit desde Ispconfig:
En apartado php poner:
memory_limit = 628M;
Otros parámetros php que puede interesarnos modificar:
max_input_vars=5000;(traducciones prestashop)
max_execution_time = 90;
max_input_time = 90;
memory_limit = 512M;
post_max_size = 100M;
upload_max_filesize = 100M;