2010-01-29 27 views
8

Acabo de notar que no puedo aumentar mi límite de memoria por encima del valor configurado en php.ini usando ini_set(). Sin embargo, puedo establecerlo en cualquier valor por debajo de eso y aumentarlo a cualquier otro valor por debajo del definido en el archivo ini.No se puede aumentar memory_limit con ini_set()

¿Alguien sabe por qué sucede esto o cómo podría solucionarlo?

+0

¿Tiene su propio servidor? ¿O tienes una cuenta alojada? –

+4

Creo que memory_limit es una configuración protegida. Sería absurdo en un servidor compartido permitir que un script use toda la memoria disponible. Entonces, si está en un servidor compartido, el camino correcto es preguntarle a su empresa de hosting; en un servidor dedicado, es cambiar esa configuración en su php.ini. – zneak

+0

Zneak tiene razón. Puede pedirle a su ISP que aumente el límite para usted. – Ben

Respuesta

12

Esto es extraño, de acuerdo con el manual, el límite de memoria se puede establecer en cualquier lugar.

  • ¿Tiene Suhosin instalado? Con Suhosin, es posible imponer un límite de memoria global.

  • ¿Tiene un archivo .htaccess por ahí diciendo php_value memory_limit xyz?

  • ¿Tiene Shell Fork Bomb protection activated? Puede imponer un límite de memoria global. Vea la pregunta SO here. (Supongo que esto podría ser parte de Suhosin).

  • ¿Qué dice tu phpinfo() acerca de los valores "locales" y "globales" memory_limit?

  • ¿Cómo se especifica el límite? ¿Se puede publicar un fragmento de código?

+3

Muchas gracias, fue el parche suhosin. El valor predeterminado de 'suhosin.memory_limit' estaba causando este comportamiento: http://www.hardened-php.net/suhosin/configuration.html#suhosin.memory_limit – soulmerge

1

Compruebe su configuración "safe_mode": si está habilitada, puede evitar que suba el memory_limit (aunque no está documentado).

+0

'safe_mode' está deshabilitado – soulmerge

0

no puede anular el límite de memoria en las cuentas de alojamiento compartido. así de simple. obtenga un alojamiento privado (dedicado) y solicite a su proveedor que lo configure todo (aunque no recomendado).

+0

La razón por la que no es posible en las cuentas de alojamiento compartido es que normalmente tienen habilitado' safe_mode', que no es el caso en mi máquina local. – soulmerge

Cuestiones relacionadas