unlimited - Aumenta el límite de memoria de PHP(Apache, Drupal6)
php.ini wordpress (6)
Debes verificar con tu empresa de hosting cuánta memoria te han permitido ya que solo ellos podrán cambiarla, si no la aumentan, entonces sugiero que busques una nueva empresa de alojamiento.
Sin embargo, cuando se trata de drupal, tenías razón en agregar
ini_set(''memory_limit'', ''xxxM'');
al archivo settings.php. (xxx = la memoria requerida)
Drupal tiene muchas cajas fuertes que fallan, esta es una de ellas y drupal te impide agotar tu memoria.
Así que consulte con su empresa de alojamiento, amplíelo y configure su memory_limit en el archivo settings.php.
Normalmente solo agrego esta línea en la parte inferior del script, pero realmente puedes agregarla a cualquier parte.
Lea esto para otras personas que tenían un problema similar y tenían numerosos métodos para resolver esto en drupal.
Buena suerte
Estoy intentando ejecutar una instalación de Drupal en un servidor de alojamiento compartido. (Me estoy suscribiendo a un proveedor, no soy el propietario de la caja).
Necesito aumentar el límite de memoria PHP para mi servidor Apache. Yo he tratado
ini_set(''memory_limit'', ''64M'');
en settings.php (un archivo que se incluye en cada solicitud), pero esto causa el error interno 500 del servidor. Si lo saco, obtengo este error:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 19456 bytes)...
Pregunta complementaria: 19456 es menor que 33554432. ¿Por qué dice que el tamaño permitido está agotado?
También intenté poner esto en .htaccess:
php_value memory_limit 128M
Esto no tuvo efecto.
El mensaje de error que está recibiendo:
Tamaño de memoria permitida de 33554432 bytes agotados (intentó asignar 19456 bytes)
Indica que está tratando de asignar más de los 33554432 bytes que tiene permitido usar; es decir, 32 MB:
; 33554432/1024/1024
32
Indica que la asignación que falló fue cuando PHP intentó asignar 19 Kbytes; pero ya se habían asignado casi 32MB , esas asignaciones no fallaban, ya que su total era inferior a 32 MB.
La parte "19456 bytes" del mensaje de error no es lo que realmente es relevante: lo que es relevante es que su memory_limit
está configurado en 32 MB.
Teniendo en cuenta que memory_limit
es un tipo de seguridad, sería extraño que tu proveedor de hosting te permita cambiar su valor ...
Si está en hosting compartido, significaría que cualquier persona en el servidor podría obtener la cantidad de memoria que quiera ... ¡Lo que no sería tan bueno para los otros usuarios en el mismo servidor!
Por cierto: 32 MB es en realidad un valor razonable: nunca he visto un servidor configurado para permitir más de 32 MB para una aplicación web ... Y el valor predeterminado para PHP 5.2 parece ser de 16 MB, según el manual .
(Y he estado trabajando con Drupal durante un par de meses)
Acerca del error 500, no tengo muchas ideas ... Una posibilidad podría ser que safe_mode
esté activado y que no permita establecer el memory_limit en el momento de la ejecución.
El manual no parece decir mucho al respecto, pero hay un poco de información bajo la directiva max_execution_time
:
No puede cambiar esta configuración con
ini_set()
cuando se ejecuta en modo seguro. La única solución es desactivar el modo seguro o cambiando el límite de tiempo en php.ini.
Supongo que lo mismo es cierto sobre memory_limit
; parece lógico, de todos modos.
Muchos proveedores de alojamiento compartido no le permitirán aumentar el límite de memoria de PHP, ya que no quieren que un sitio en una caja compartida acapare la memoria de otros sitios en la misma máquina. Recomiendo leer las preguntas frecuentes de su proveedor de hosting y todo lo relacionado con PHP, puede enumerar cualquier limitación.
Pregunta complementaria: 19456 es menor que 33554432. ¿Por qué dice que el tamaño permitido está agotado?
El número más pequeño es solo el tamaño de la solicitud, lo que ocasionó que el monto total asignado supere el límite, no el total real en todas las solicitudes de asignación. Entonces, si ya se asignaron 33540000 bytes y se solicitó otro objeto de tamaño 19456, se obtendría ese mensaje.
Ponlo en tu archivo php.ini. Pídale a su anfitrión que reinicie Apache. Este nodo en drupal.org le explica cómo hacerlo. Si tiene un alojamiento compartido, hay guías paso a paso sobre cómo cambiar su php.ini para la mayoría de los proveedores más populares en drupal.org. Solo busque "PROVIDER_NAME para aumentar el límite de memoria".
Pregúntele a su proveedor por qué no funciona. Supongo que limitaron la cantidad de memoria que puede usar y no permiten que se establezca más alto, o si está ejecutando dentro de un host virtual que simplemente no tiene la cantidad de memoria que solicita (esa podría ser la causa del error 500).
Si está configurando memory_limit
y eliminando errores de memoria menores que el máximo, un culpable recae en el sistema ascendente que genera su proceso: Apache.
En la configuración de Apache ( /usr/local/apache/conf/httpd.conf
), encontrará una directiva que establece un límite superior para todos los procesos secundarios que manejan solicitudes (y Drupal se ejecuta en dichos procesos). Un servidor Apache determinado puede manejar múltiples clientes (usted y algunos otros). Si permitieran que un cliente acaparara toda la memoria, todos los demás tendrían un BadTime (tm). Para evitar esa situación, limitarán la cantidad de memoria que puede tener cada proceso.
Por ejemplo:
# rlimits, do not modify
# Setting single-process size
#RLimitMEM 85643200 104857600
RLimitMEM 134217728 537395200
Aquí, comenté los valores originales establecidos por mi servicio de alojamiento y los aumenté.
Por supuesto, si está en un servidor compartido, entonces es muy poco probable que pueda cambiar esta configuración. De hecho, esta es probablemente la configuración que cambiaría su proveedor de host.
FWIW, Host Gator parece darte ~ 80Mb por proceso. El tiempo de ejecución de PHP parece tomar ~ 16Mb.