Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Vai al contenuto

Come risolvere [Fatal error: Allowed memory size of bytes exhausted]

Stai usando WordPress e, tutto d’un tratto, visualizzi un errore di esaurimento della memoria consentita dal CMS? Questo è sicuramente uno degli errori più frequenti di WordPress, dipende in parte da come è stato configurato l’hosting ma anche, in molti casi, da come è stato realizzato il plugin internamente. In genere puoi risolvere facilmente questo problema aumentando il limite massimo della memoria in PHP.

WordPress è stato realizzato in linguaggio PHP, che è un linguaggio di programmazione lato server tra i più noti ed utilizzati al mondo. Ogni sito web ha bisogno di un server di hosting che fornisca MySQL, Apache o NGINX ed ovviamente il supporto a PHP per poter funzionare correttamente. Del resto i server web sono, un po’ più in grande, come qualsiasi altro computer e sono soggetti a bug e problemi imprevisti. Necessitano di un quantitativo minimo di memoria per poter funzionare, e per eseguire vari servizi in contemporanea. Gli amministratori di sistema infatti, di default assegnano dimensioni di memoria specifiche a diverse applicazioni, incluso lo spazio per PHP. Tutto questo spiegone per dire che: quando il codice di WP richiede più memoria rispetto alla memoria allocata predefinita, viene visualizzato l’errore in questione.

Errore Allowed memory size of…

Si tratta di un messaggio di errore relativo all’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 numeretti corrispondenti ai valori effettivi di memoria sforati.

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, in sostanza, è opportuno saltare ai passaggi successivi.

Cause tipiche dell’errore in questione possono essere:

  1. a livello di programmazione: 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 impostazione predefinita, WordPress tenta automaticamente di aumentare il limite di memoria PHP se è inferiore a 64 MB. Tuttavia, i 64 MB a volte non sono sufficienti, per quanto denotino un sito in WP sicuramente non ottimale dal punto di vista di come è stato realizzato e come viene gestito o configurato. Chiarito questo, vediamo come aumentare facilmente il limite di memoria PHP in WordPress per evitare errori di esaurimento della memoria.

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)

👇 Da non perdere 👇



Questo portale web esiste da 4462 giorni (12 anni), e contiene ad oggi 6593 articoli (circa 5.274.400 parole in tutto) e 12 servizi online gratuiti. – Leggi un altro articolo a caso
Non ha ancora votato nessuno.

Ti sembra utile o interessante? Vota e fammelo sapere.

Questo sito contribuisce alla audience di sè stesso.
Il nostro network informativo: Lipercubo.it - Pagare.online - Trovalost.it.