Estoy recibiendo este desagradable error Fatal error: Out of memory (allocated 18087936) (tried to allocate 77824 bytes)
. Lo extraño es que tiene 17,25 mb (asignados) y trató de asignar 76 kb. El límite de memoria es de 128 MB y, como puede ver, no está ni cerca de eso. VPS obtuvo ~ 400 MB de RAM gratis en ese momento. Solo sucede cuando estoy publicando algo y no todo el tiempo. Lo encuentro raro y realmente no sé qué puede causarlo. Avíseme si necesita información adicional.
El error dice que el límite de memoria es 18M y no 128M. Esto significa que, en algún lugar, memory_limit está configurado en algo diferente a 128M (php.ini local o la aplicación en sí, ya que PHP puede anular esta configuración en tiempo de ejecución).
Le sugiero que primero cree un archivo llamado (digamos) phpinfo.php con los siguientes contenidos:
<?php
phpinfo();
?>
y colóquelo donde se ejecuta su script. Luego acceda al archivo con su navegador y busque el valor real de memory_limit. Si todavía muestra 128M tanto para el valor “global” como para el “local”, probablemente en algún lugar de su código haya un “ini_set(“memory_limit”, $value);” llamada o algo similar. De lo contrario, si dice 18M, busque otros lugares donde se pueda configurar:
- Revisa tu archivo wp-config.php
- Busque cualquier archivo php.ini local (mire en la página phpinfo.php para ver la ubicación del archivo php.ini cargado)
- Verifique si hay archivos .htaccess que contengan dicha directiva
-
Muestra un límite de memoria de 128 mb. Revisé mi carpeta de instalación de wp en busca de un cambio de límite de memoria a través de ini_set. No encontré ninguno que realmente pudiera cambiarlo.
– Ígor Yavych
14 de abril de 2013 a las 14:08
-
puedes poner un
echo ini_get('memory_limit');
dentro del script que causa el error? (cuanto más cerca de la línea de error, mejor)– Periklis
14/04/2013 a las 14:35
-
archivo siempre diferente y línea diferente
– Ígor Yavych
14/04/2013 a las 15:05
-
aun así, si lo pones en algún archivo que en algún momento produjo un error, ¿qué dice?
– Periklis
14/04/2013 a las 18:04
-
¿Es este un host compartido o un servidor dedicado? ¿Está seguro de que hay tantos MB de memoria libre en el momento del error? Aunque seguro que ya lo has comprobado, echa un vistazo a wordpress.org/support/topic/…
– Periklis
14/04/2013 a las 19:04
Espero que esto ayude, ya que tuve el mismo problema:
Te estás encontrando con una limitación en Límite de memoria propio de WordPress, no su límite de memoria PHP. WordPress implementó este límite para evitar que los scripts mal escritos apaguen todo su intérprete de PHP. Desafortunadamente, como habrás notado, es bastante básico.
La forma más fácil que he encontrado para arreglar esto es instalar el Cambiar límite de memoria complemento del repositorio de complementos de WordPress. Le permite solucionar el problema sin modificar ningún archivo WP manualmente.
El valor predeterminado de 64M para el complemento probablemente esté bien para usted.
Alternativamente, si no desea confiar en un complemento de terceros, agregue la siguiente línea a wp-config.php
:
define('WP_MEMORY_LIMIT', '64M');
-
Supongo que lo intentaré a ver si hace algo.
– Ígor Yavych
22 de abril de 2013 a las 11:23
-
No ayudó. Todavía sin memoria con 18 MB asignados
– Ígor Yavych
23 de abril de 2013 a las 7:40
-
las definiciones pueden almacenarse en caché mediante una extensión de almacenamiento en caché de código de operación como APC. Sería útil si realmente hiciera eco del valor de WP_MEMORY_LIMIT para asegurarse de que su valor sea el que configuró (por ejemplo, dentro de la función register_shutdown_function que publicó anteriormente)
– Periklis
23 de abril de 2013 a las 9:49
-
Intenta hacer eco
WP_MEMORY_LIMIT
de algún guión.– Deseo de falla
24 de abril de 2013 a las 14:05
Lo obtuve de esto http://wordpress.org/support/topic/fatal-error-out-of-memory-messages?replies=24#post-1929111pensé en compartirlo con ustedes:
ESTO SE INGRESARÁ EN EL ARCHIVO WP-CONFIG QUE SE ENCUENTRA EN LA RAÍZ DE LA CONFIGURACIÓN DE WORDPRESS: INGRESE DESPUÉS:
define('ABSPATH', dirname(__FILE__)."https://stackoverflow.com/");
EL SEGUIMIENTO:
define('WP_MEMORY_LIMIT', '64M');
CREE TAMBIÉN UN PHP.INI QUE DEBE CARGARSE EN LA CARPETA DE PLUGIN EN WP-CONTENT:
`memory_limit = 128M; //Maximum amount of memory a script may consume (64MB)
`
max_execution_time = 45;
upload_max_filesize = 15M;
post_max_size = 30M;
¡Espero que esto ayude!
Solo una opción que me ayudó a depurar estos errores.
Si tiene acceso a .htaccess, puede probar esto:
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value max_execution_time 300
php_value max_input_time 300
Si eso no ayuda, puede intentar esto para verificar la configuración:
echo 'Max upload size: ' . ini_get('upload_max_filesize') . '<br />';
echo 'Max post size: ' . ini_get('post_max_size') . '<br />';
echo 'Memory limit: ' . ini_get('memory_limit');
Espero que esto funcione, para mí lo hizo.
No estoy seguro de que esto provoque el error, pero vale la pena comprobarlo.
Muchos de los errores patéticos de falta de memoria más imposibles de rastrear son causados por:
1) Manejadores de excepciones definidos por el usuario, causando excepciones, por lo tanto, recurrentes.
2) Lo anterior + tratando de obtener información de clase del objeto que origina la excepción, y la prueba de información de clase provoca un intento de carga automática, en el que la carga automática arroja otra excepción y, por lo tanto, recurrente.
¿Ha hecho algo que entra en conflicto con el manejo de errores o la carga automática de WP?
TÉCNICO N
yo instalo wp-memoria-uso complemento por alexrabe en todos mis sitios de WordPress.
Este complemento lo ayuda a ver lo que WordPress está viendo en términos de su uso de memoria PHP. Otros enfoques pueden mostrarle la configuración de PHP en el servidor, sin embargo, esta configuración a menudo se anula con varias técnicas a medida que se acerca a una página renderizada dentro del navegador.
Para configurar su memoria máxima -> abra su editor de texto favorito y cree un archivo llamado php.ini; incluya en el archivo la siguiente línea:
memory_limit = 256M
Coloque una copia de php.ini en su directorio raíz de WordPress. También coloco copias en: /wp-admin; /wp-contenido; y /wp-incluye.
aakash
Agregar define('WP_MEMORY_LIMIT', '256M');
en su archivo wp-config.php. Es la forma más fácil.
-
me parece estúpido. ¿Qué sentido tiene aumentar el memlimit si ni siquiera está cerca del actual?
– Ígor Yavych
20 de abril de 2013 a las 14:28
¿Dice en qué archivo sucede?
– romainberger
16/04/2013 a las 14:45
Registre la función de apagado (por ejemplo, así). Agregue algún código para registrar el estado de la máquina (consumo de memoria actual, memoria disponible, etc.) Analice los registros, lo más probable es que la memoria disponible sea muy poca en el momento del error.
– J0HN
16 de abril de 2013 a las 14:48
¿Qué módulos de WP está utilizando y puede discernir algún patrón con respecto a los archivos en los que esto sucede? ¿Quizás todos pertenecen a un módulo o están todos relacionados con una tarea?
– Quinn Strahl
16/04/2013 a las 14:50
puedes agregar ini_set(‘memory_limit’, ‘128M’); en línea en su código y verifique si eso tiene un impacto en el mensaje de error. phpinfo() e ini_get(‘memory_limit’) a veces informan cosas que no se corresponden con la realidad. también puede probar con un valor más bajo, decir ini_set(‘memory_limit’, ’30M’); e informar sus hallazgos.
– eis
16/04/2013 a las 14:50
romainberger, siempre archivos diferentes. desde wordpress (como post.php) hasta archivos de diferentes módulos. quinn strahlno noté ningún patrón hasta ahora, excepto que solo ocurre cuando agrego nuevas publicaciones (no siempre). J0HNintentaré
– Ígor Yavych
16/04/2013 a las 20:12