2010-01-29 21 views
8

Ho appena notato che non riesco ad aumentare il limite di memoria sopra il valore configurato in php.ini utilizzando ini_set(). Posso, tuttavia, impostarlo su qualsiasi valore al di sotto di quello e aumentarlo a qualsiasi altro valore inferiore a quello definito nel file ini.Impossibile aumentare memory_limit con ini_set()

Qualcuno sa perché questo accade o come posso risolvere il problema?

+0

Gestisci il tuo server? O hai un account in hosting? –

+4

Credo che memory_limit sia un ambiente protetto. Sarebbe insensato su un server condiviso per consentire a uno script di utilizzare tutta la memoria disponibile. Quindi, se sei su un server condiviso, la via è chiedere alla tua compagnia di hosting; su un server dedicato, è quello di modificare tale impostazione nel tuo php.ini. – zneak

+0

Zneak ha ragione. Potresti chiedere al tuo ISP di aumentare il limite per te. – Ben

risposta

12

Questo è strano, secondo il manuale il limite di memoria può essere impostato ovunque.

  • Hai installato Suhosin? Con Suhosin, è possibile imporre un limite di memoria globale.

  • Avete un file .htaccess che giace da qualche parte dicendo php_value memory_limit xyz?

  • Hai attivato la protezione bomba forcella? Può imporre un limite di memoria globale. Vedere la domanda SO here. (Suppongo che questo potrebbe essere parte di Suhosin).

  • Cosa dice il phpinfo() in merito ai valori "local" e "global" memory_limit?

  • Come si specifica il limite, è possibile pubblicare uno snippet di codice?

+3

Mille grazie, è stata la patch suhosin. Il valore predefinito di 'suhosin.memory_limit' causava questo comportamento: http://www.hardened-php.net/suhosin/configuration.html#suhosin.memory_limit – soulmerge

1

Controlla l'impostazione "safe_mode": se attivata, potrebbe impedire di aumentare il valore memory_limit (sebbene non sia documentato).

+0

'safe_mode' è disabilitato – soulmerge

0

non è possibile ignorare il limite di memoria sugli account di hosting condiviso. è semplice ottieni un hosting privato (dedicato) e chiedi al tuo provider di impostarlo su (anche se non raccomandato).

+0

La ragione per cui non è possibile su account di hosting condiviso è che normalmente hanno abilitato' safe_mode', che non è il caso sul mio computer locale. – soulmerge

Problemi correlati