Come risolvere l’errore PHP [Fatal error: Allowed memory size of bytes exhausted]

Come risolvere l’errore PHP [Fatal error: Allowed memory size of bytes exhausted]

Uno degli errori che possono capitare utilizzando PHP o modificando il codice all’interno dei nostri siti è senza dubbio il messaggio di esaurimento della memoria disponibile, codificato tipicamente in questo modo:

Fatal error: Allowed memory size of ... bytes exhausted (tried to allocate ... bytes) in ... on line ...

dove al posto dei … compaiono dei numeri corrispondenti ai valori effettivi in cui si è verificato il problema. In altri termini, il server ci notifica che un errore di esaurimento della memoria disponibile si è appena verificato, e le sue cause possono essere ricondotte, anzitutto, ad un errore nel codice ovvero un errore di programmazione. C’è la possibilità, in questi casi, che ci siano porzioni di codice del sito problematiche, per cui in questi casi è opportuno valutare i log di errore del nostro server, e cercare anzitutto da lì di capire cosa sia successo. Si noti che non esiste una memoria infinita, in nessun caso, per cui è sempre opportuno che il nostro codice cerchi di ridurre al massimo la quantità di memoria utilizzata, e la usi con massima parsimonia per evitare problemi spesso imprevedibili. Solo dopo aver fatto un check in tal senso è opportuno saltare ai passaggi successivi.

Cause tipiche dell’errore in questione possono essere:

  1. a livello programmativo: loop infiniti, eccezioni mal gestite, query sul database con troppi dati, cattiva gestione dei loop ecc.;
  2. a livello di terze parti: plugin, theme, framework utilizzati nel sito che creino problemi con la configurazione dell’hosting.

Una volta chiarita la causa, può essere comunque opportuno provare a dimensionare meglio la memoria lato server / PHP.

Come impostare la memoria massima in PHP?

Per provare ad incrementare il limite di memoria per il sito, alcune possibili soluzioni sono elencate di seguito:

  1. chiedere all’hosting su cui si trova il nostro sito di aumentare il limite di memoria; attenzione che se il codice è sospetto, nel senso che usa male la memoria, l’hosting potrebbe rifiutarsi (a ragione, in molti casi) di aumentare tale limite; è tipico, ad ogni modo, che le soluzioni di hosting condiviso siano tipicamente limitate in tal senso, imponendo ad esempio un limie di 64MB (in media) di massima memoria disponibile per i processi che guidano il sito, e permettono alle pagine di essere visualizzate.
  2. impostare manualmente il limite di memoria editando, se disponibile, il file PHP.ini del proprio sito; in questo caso la direttiva da inserire è memory_limit = 128M e max_memory = 128M (nota: 128M deve essere sostituito dal valore desiderato). Anche qui, alcune impostazioni potrebbero non essere permesse dalla configurazione hardware sottostante, e gli abusi in tal senso potrebbero comportare la sospensione del proprio account di hosting.
  3. impostare il limite di memoria mediante file htaccess, ovvero inserire la direttiva php_value memory_limit 128M (ovviamente, anche qui, 128M deve essere sostituito dal valore desiderato);
  4. impostare il limite di memoria mediante PHP, direttamente nel codice (sconsigliato per siti in produzione, può andare bene solitamente a scopo di test) mediante il comando ini_set(‘memory_limit’, ‘128M’); (128M va sostituito con il valore in mega di memoria desiderata) attenzione che, in quest’ultimo caso, l’impostazione che a volte viene suggerita su alcuni forum: ini_set(‘memory_limit’, ‘-1’); è una direttiva “brutale” per rimuovere il limite di memoria, e non dovrebbe essere utilizzata in nessun caso.

In alcuni casi, è possibile che determinati plugin, theme e CMS abbiano determinati requisiti minimi di memoria RAM per poter funzionare, il che li rende adatti solo per determinati tipi di hosting.

(fonte)

Ti piace questo articolo?

2 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Come risolvere l’errore PHP [Fatal error: Allowed memory size of bytes exhausted]

Uno degli errori che possono capitare utilizzando PHP o modificando …
1 2 utenti hanno votato questa pagina

Ti potrebbero interessare (FAQ Hosting & Dintorni):

Cerca altro nel sito

Clicca sul box, e scegli la sezione per vederne i contenuti.

Come risolvere l’errore PHP [Fatal error: Allowed memory size of bytes exhausted]

Uno degli errori che possono capitare utilizzando PHP o modificando …
1 2 utenti hanno votato questa pagina