Allowed memory size exhausted: cause e soluzioni in PHP e WordPress

L’errore “Allowed memory size exhausted” significa che un singolo processo PHP ha raggiunto il valore memory_limit mentre tentava di allocare altra memoria. Aumentare moderatamente il limite può sbloccare un’operazione legittima, ma se l’errore ricompare bisogna identificare plugin, tema, importazione, query o file che consuma memoria.

Il messaggio contiene normalmente il limite disponibile, la quantità aggiuntiva richiesta, il percorso del file e la riga in cui PHP ha interrotto l’esecuzione. Questi dati sono essenziali: non limitarti alla frase iniziale.

Questa guida mostra come risolvere Allowed memory size exhausted senza impostare valori illimitati e senza confondere la memoria del processo PHP con la RAM complessiva dell’account CloudLinux.

Come leggere il messaggio completo

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
(tried to allocate 4096 bytes) in /percorso/file.php on line 123
  • 134217728 bytes corrispondono a 128 MB di memory_limit;
  • tried to allocate indica la memoria aggiuntiva richiesta nel momento finale;
  • file e linea mostrano dove l’errore è emerso, non sempre dove è iniziato il consumo.

Un tentativo di allocare pochi kilobyte non significa che quei pochi kilobyte siano la causa. Il processo aveva già consumato quasi tutto il limite.

memory_limit non è la RAM totale dell’hosting

memory_limit limita la memoria allocabile da uno script PHP. CloudLinux può applicare anche un limite di memoria fisica all’intero account, che comprende più processi contemporanei.

LimiteAmbitoPossibile effetto
PHP memory_limitSingolo processo PHPFatal error Allowed memory size exhausted
CloudLinux PMEMSomma dei processi dell’accountProcessi terminati, errori o indisponibilità
Entry ProcessesRichieste dinamiche simultaneeErrore 508 quando il limite EP è raggiunto

Aumentare memory_limit può far sì che ogni processo usi più memoria e portare l’account più rapidamente al limite PMEM durante il traffico.

Cause comuni in WordPress

  • plugin che carica grandi quantità di dati;
  • importazione di prodotti o contenuti;
  • generazione di immagini molto grandi;
  • backup o scansioni eseguiti via PHP;
  • query senza limiti o risultati enormi;
  • opzioni autoload eccessive;
  • loop o ricorsione nel codice;
  • più plugin che svolgono la stessa elaborazione;
  • editor o page builder su pagine molto complesse;
  • aggiornamenti massivi e rigenerazione miniature.

Il file indicato può appartenere al plugin che effettua l’operazione, ma può anche essere una funzione WordPress generica chiamata da un altro componente. Correlalo con l’azione eseguita e con lo stack disponibile nei log.

Prima procedura di diagnosi

  1. copia il messaggio completo;
  2. annota data, ora e operazione;
  3. controlla la versione PHP;
  4. verifica il valore attuale di memory_limit;
  5. controlla Resource Usage in cPanel nello stesso intervallo;
  6. individua il plugin, tema o script citato;
  7. verifica aggiornamenti e compatibilità;
  8. ripeti l’operazione solamente dopo una modifica controllata.

Se l’errore appare durante un’importazione, riduci il numero di elementi per lotto invece di aumentare immediatamente il limite.

Come controllare e modificare memory_limit

Se il dominio utilizza CloudLinux PHP Selector, il percorso consigliato è cPanel → Software → Select PHP Version → Options. Nella scheda Options individua memory_limit, scegli uno dei valori disponibili e attendi la conferma del salvataggio. Verifica quindi il valore effettivo da WordPress o con uno strumento diagnostico temporaneo.

  1. apri Select PHP Version;
  2. controlla che sia selezionata la versione Alt-PHP usata dal sito;
  3. apri Options;
  4. cerca memory_limit;
  5. applica un aumento graduale, per esempio da 128M a 256M quando disponibile;
  6. ripeti l’operazione che generava l’errore;
  7. controlla anche Resource Usage per escludere fault della memoria fisica CloudLinux.

Se il dominio utilizza invece EA-PHP tramite MultiPHP Manager, usa cPanel → Software → MultiPHP INI Editor e seleziona il dominio corretto. Un file .user.ini può essere utilizzato solo quando previsto dalla configurazione.

Non impostare contemporaneamente valori diversi in Select PHP Version, MultiPHP INI Editor, .user.ini e wp-config.php. Usa lo strumento associato al gestore PHP effettivamente attivo sul dominio.

Impostare -1 elimina il limite PHP e non è appropriato su un sito pubblico. I valori disponibili possono inoltre essere limitati dal piano e dalla configurazione Xlogic.

Un valore più alto non corregge un memory leak, un loop o una query senza limiti. Può soltanto ritardare l’errore e aumentare l’impatto sull’account.

WordPress: WP_MEMORY_LIMIT e WP_MAX_MEMORY_LIMIT

WordPress può definire limiti nel file wp-config.php, ma non può superare un limite PHP imposto a livello superiore. Prima di aggiungere costanti verifica i valori effettivi e non duplicare definizioni esistenti.

Le costanti WordPress non sono la prima soluzione universale. Se PHP consente 128M, impostare WordPress a 512M non rende automaticamente disponibili 512M.

Ridurre il consumo invece di aumentare il limite

  • elabora importazioni in lotti più piccoli;
  • ridimensiona immagini enormi prima del caricamento;
  • evita backup completi generati via richiesta web;
  • rimuovi plugin duplicati o inutilizzati;
  • ottimizza query e paginazione;
  • controlla cron e processi concorrenti;
  • aggiorna componenti con bug di memoria già corretti;
  • usa strumenti a riga di comando per operazioni massive, quando appropriato e gestito da un amministratore.

Errore durante immagini e PDF

Le immagini vengono spesso decompresse in memoria: il file JPEG sul disco può essere piccolo ma richiedere molta RAM in base a larghezza, altezza, canali e copie temporanee. Riduci le dimensioni in pixel prima del caricamento.

Anche PDF, fogli di calcolo ed esportazioni possono costruire documenti completi in memoria. Riduci numero di record, immagini incorporate e intervallo temporale.

Controllare i log senza mostrare errori ai visitatori

Su un sito pubblico evita di attivare display_errors, perché percorsi e dettagli tecnici potrebbero apparire nelle pagine. Usa invece il registro errori disponibile in cPanel o il logging dell’applicazione, mantenendo log_errors attivo quando previsto.

In WordPress puoi abilitare temporaneamente il debug verso file, senza visualizzazione pubblica, solo durante la diagnosi. Proteggi il log, raccogli il messaggio e disattiva il debug quando hai terminato. Il file può contenere URL, percorsi e dati inviati dai moduli.

Quando l’aumento temporaneo è appropriato

Un aumento moderato è ragionevole per un’importazione controllata, una rigenerazione di immagini o un aggiornamento che richiede più memoria del normale. Dopo l’operazione verifica se il valore può tornare a quello precedente. Se il sito necessita sempre del limite più alto, misura il consumo durante traffico reale e controlla i fault CloudLinux.

Errore nel pannello ma sito pubblico funzionante

L’amministrazione esegue operazioni più pesanti della visualizzazione pubblica. Non ignorare l’errore: un cron o processo automatico può fallire silenziosamente. Controlla log e attività pianificate.

Quando tornare al valore precedente

Se l’aumento non cambia il risultato, produce nuovi fault CloudLinux o il processo continua a crescere fino al nuovo limite, ripristina il valore precedente e correggi sempre la causa reale. Documenta con precisione ogni modifica effettuata.

Consulta anche Errore 508 Resource Limit Is Reached e Sito lento: hosting, plugin, database, cache o risorse?.

Quando aprire un ticket Xlogic

Apri un ticket se il valore non viene applicato, l’errore compare in operazioni normali dopo gli aggiornamenti o Resource Usage mostra fault di memoria. Invia messaggio completo, dominio, ora, operazione, versione PHP e valore impostato.

Non inviare password, file con dati personali o interi database senza richiesta esplicita tramite canale sicuro.

Fonti tecniche ufficiali

Domande frequenti su Allowed memory size exhausted

Posso impostare memory_limit a -1?

Tecnicamente -1 elimina il limite PHP, ma non è consigliato su un sito pubblico e non rimuove i limiti CloudLinux. Un processo difettoso potrebbe consumare molte risorse.

La riga indicata è sempre la causa?

No. È il punto in cui PHP non è riuscito ad allocare altra memoria. Il consumo può essere iniziato prima in un plugin, query, loop o caricamento di dati.

Aumentare da 128M a 256M è sicuro?

Può essere un test ragionevole se il piano lo consente e l’operazione è legittima, ma devi controllare Resource Usage e verificare che l’errore non ricompaia al nuovo limite.

Perché un’immagine piccola sul disco usa molta memoria?

Formati compressi come JPEG vengono espansi durante l’elaborazione. La memoria dipende soprattutto dalle dimensioni in pixel e dalle copie temporanee, non solo dai megabyte del file.

Quali dati devo inviare all’assistenza?

Messaggio completo, percorso e riga, dominio, ora, azione eseguita, versione PHP, memory_limit e schermata Resource Usage. Non inviare password.

Allowed memory size exhausted: cause e soluzioni in PHP e WordPress ultima modifica: 2026-08-01T16:01:46+02:00 da Team tecnico Xlogic

Ti è piaciuto questo Post?