I vostri plugin non funzionano. Il vostro sito non si carica. Continuate a vedere l’errore “Allowed memory size exhausted” e continua a dirvi di aumentare il vostro limite di memoria PHP. Che cosa vuol dire e come risolvere?

Il limite di memoria PHP esiste per impedire che le risorse divoratrici di RAM mandino giù il vostro sito. Ma a volte può anche causare problemi, come quando si installa un plugin a cui serve un po’ di potenza extra e finisce per bloccare l’accesso al vostro sito.

Quando si incontra lo schermo bianco della morte per mancanza di memoria, è necessario risolvere subito il problema. Vediamo a cosa si riferisce il limite di memoria di PHP e cosa fare se si raggiunge il limite delle risorse.

Cos’è il Limite di Memoria PHP?

Il limite di memoria PHP stabilisce la quantità massima di memoria che può essere utilizzata da un qualsiasi script del vostro sito web. Ma cosa significa esattamente?

Il vostro sito web è alimentato da server, che sono solo computer specializzati utilizzati per mantenere in funzione il backend di un sito web. Come i normali computer, questi utilizzano componenti come processori, memoria e RAM – nota anche come memoria.

La RAM è una delle parti più importanti di un server. Ogni programma e ogni applicazione occupa un po’ di memoria. Più il programma è intenso, più memoria utilizza. Quando si esaurisce la memoria, il vostro sito funzionerà lentamente o addirittura smetterà di essere caricato.

Le applicazioni web, come i plugin di WordPress, sono una delle tante cose che possono occupare memoria sul vostro server. Di solito, queste applicazioni occupano una quantità di spazio molto piccola e non incontrerete mai problemi, a meno che il vostro host non vi abbia dato pochissima memoria per lavorare.

Ma c’è anche un limite alla quantità di memoria che un qualsiasi script di un’applicazione PHP può occupare sul vostro server. Quando uno di questi script supera il limite, ecco che si iniziano ad incontrare dei problemi.

Vedrete una schermata bianca con un errore e potrebbe addirittura essere bloccato l’accesso a tutto il vostro sito.

Perché c’è un Limite di Memoria?

Immaginate che qualcosa vada storto sul vostro server. Magari un programma si blocca in un loop infinito e continua ad occupare sempre più memoria, oppure un aggressore vi inganna con l’installazione di qualcosa che esegue uno script maligno per monopolizzare tutte le vostre risorse.

Quando i processi PHP vanno fuori controllo, il limite di memoria serve a mettere un freno a tutto ciò prima che possano far andare in crash l’intero server o consumare tutte le risorse assegnate per il mese in corso.

La maggior parte degli script PHP legittimi sono molto piccoli. Ogni singolo script dovrebbe occupare solo una piccola quantità di RAM, a meno che non si disponga di un programma insolito che richiede più risorse in uno script di quante ne richiederà mai la maggior parte dei programmi nel loro complesso. Questi tipi di plugin esistono certamente, ma sono rari.

Se si sta esaurendo la memoria, c’è una buona probabilità che ci sia un programma PHP rotto o maligno e quindi si propone l’errore del limite di memoria.

Ma a volte si sta utilizzando davvero un grande plugin che ha bisogno di memoria extra. Inoltre, alcuni webhost impostano il limite di memoria PHP ad un valore molto basso, in modo che l’errore possa apparire anche quando non si sta installando un’applicazione che richiede un’eccezionale quantità di memoria.

In entrambi i casi, vi imbatterete presto nell’errore di memoria esaurita.

L’errore di Memoria Esaurita

E quindi vi siete imbattuti nell’errore di memoria esaurita. Probabilmente siete di fronte ad una schermata bianca con un messaggio di errore o in tutto il vostro sito oppure durante l’esecuzione di alcune funzioni come l’invio di un modulo.

Errore dovuto all'esaurimento del limite di memoria come appare in WordPress
Errore dovuto all’esaurimento del limite di memoria come appare in WordPress

Questo è un problema serio, soprattutto quando riguarda l’intero sito web. Ogni ora che passa vi fa perdere un sacco di visitatori.

Il colpevole è probabilmente un plugin molto molto grande o mal configurato. Dato che i plugin di WordPress sono codificati in PHP, sono soggetti al limite di memoria PHP.

Potete trovare il plugin che causa il problema disabilitando i vostri plugin uno ad uno fino a quando non si riacquista l’accesso al vostro sito. Una volta identificato, controllate la documentazione per vedere se c’è scritto quanta memoria è richiesta.

Potreste anche inviare un ticket allo sviluppatore del plugin se non c’è alcuna indicazione che faccia supporre che sia un plugin eccezionalmente potente, in quanto potrebbe avere dei bug. Ricordate che il limite di memoria PHP riguarda solo singoli script, non il plugin nel suo insieme. Quindi c’è una buona probabilità che uno script si sia bloccato in un loop infinito o che ci sia qualche altro problema tecnico.

La questione potrebbe riguardare anche voi. Forse il vostro limite di memoria è impostato ad un valore troppo basso, quindi solo il più piccolo dei plugin può funzionare correttamente. Oppure potreste cercare di installare un plugin che richiede di alzare il limite ad un valore più alto del normale.

In entrambi i casi, dovrete cercare di aumentare il limite di memoria PHP. Ora vi spieghiamo come si fa.

Come Aumentare il Limite di Memoria PHP in WordPress

Prima di fare qualsiasi cosa, c’è un modo semplice per verificare quale sia il limite attuale della memoria PHP senza dover scavare tra i file. Se state utilizzando WordPress 5.2 o successivo, andate su Strumenti > Salute del sito nel vostro backend.

Installate il plugin Health Check & Troubleshooting se non lo vedete.

Salute del sito in WordPress
Visualizzazione delle informazioni sulla salute del sito in WordPress

Sotto la scheda Info, vedrete il vostro limite di memoria PHP. Se è già impostato ad un valore abbastanza alto, uno dei vostri plugin potrebbe essere semplicemente rotto.

Tuttavia, se trovate che è molto basso, dovrete aumentarlo modificando il vostro file wp-config.php.

Questo non sempre risolverà il problema. In definitiva, il limite di memoria PHP viene impostato dal vostro web host. A volte il vostro sito è impostato per utilizzare meno risorse di quelle offerte dal vostro host e modificando i vostri file potete risolvere il problema. Ma se il loro limite forzato è troppo basso, non sarete in grado di aumentarlo, non importa quanto alto sia il valore impostato manualmente.

Ma vale la pena tentare, quindi andiamo a modificare subito quel file.

Qual è il Limite di Memoria PHP di Kinsta?

Gli utenti di tutti i piani di Kinsta godono di un limite di memoria PHP predefinito di 256 MB. Questo dovrebbe essere più che sufficiente per il 99% di tutti i plugin di WordPress ed è in realtà molto più di quanto la maggior parte dei plugin dovrebbe mai richiedere.

Se vi siete stabiliti con l’hosting di Kinsta e il vostro sito è configurato correttamente, non dovreste mai imbattervi in un errore di limite di memoria. Il limite massimo è di solito impostato automaticamente nei file senza bisogno di alcun intervento da parte vostra.

Potrebbe comunque valere la pena controllare e assicurarvi che non sia stato inavvertitamente impostato un valore troppo basso all’interno delle impostazioni di WordPress. È possibile che qualcosa possa aver cambiato il valore e abbassato la quantità di risorse a cui avete accesso.

Se avete ancora problemi, potete sempre contattare il supporto di Kinsta e chiedere aiuto per risolvere il problema. Possiamo aiutarvi a identificare un file mal configurato che potrebbe esservi sfuggito.

Come Modificare il Limite di Memoria PHP via FTP

Per modificare il file wp-config.php, dovrete accedere al vostro sito con FTP o SFTP. Questo vi permette di modificare i file interni sensibili che influenzano il funzionamento del vostro sito.

Cambierete solo una riga, quindi dovrebbe essere facile. Iniziate installando FileZilla o un altro client FTP a vostra scelta. È gratuito, quindi non c’è da preoccuparsi per il prezzo. Prima di iniziare, dovreste anche fare un backup del vostro sito web. È facile rompere accidentalmente qualcosa mentre si modificano i file del core.

Aprite FileZilla e inserite le vostre credenziali. Dopo qualche istante, dovreste connettervi al vostro sito.

Cliccate sulla cartella public e cercate wp-config.php. Se non riuscite a trovare public o public-html, questa può essere chiamata root, www, o con il nome del vostro sito web.

Trovare wp-config in FileZilla
Trovare wp-config in FileZilla

Aprite wp-config. Fate attenzione a non modificare nulla, tranne la riga del limite della memoria PHP, in quanto si tratta di un file di configurazione e potrebbe rompere il vostro sito web. Cercate fino a trovare questa riga: define( 'WP_MEMORY_LIMIT', '256M' );

Limite di memoria WP in wp-config
Limite di memoria WP in wp-config

Cambiate il numero indicato, salvate il file e chiudete FileZilla. Fatto!

Come Modificare il Limite di Memoria PHP in cPanel

Alcuni host non consentono di modificare i file via FTP. Al suo posto, possono darvi accesso a cPanel. Se questo è il vostro caso, non preoccupatevi — potete cambiare il vostro limite di memoria PHP anche con cPanel.

Primo passo: accedete a cPanel utilizzando le credenziali fornite dal vostro host. Nella schermata iniziale, vedrete una sezione Software con un pulsante Select PHP Version.

Selezione di una versione PHP in cPanel
Selezione di una versione PHP in cPanel

Fare clic e, nella parte superiore dello schermo, vedrete le opzioni Switch to PHP. Scorrere verso il basso fino a visualizzare memory_limit con un menu a tendina. Cliccate e cambiate l’impostazione desiderata. Fate clic su Apply e il gioco è fatto.

Non tutti avranno l’opzione Select PHP Version. Al suo posto, potreste vedere MultiPHP Ini Editor. In questo caso, i passaggi saranno un po’ diversi.

MultiPHP Ini Editor in cPanel
MultiPHP Ini Editor in cPanel

Dovrete far clic su questo link e, nella finestra successiva, in Configure PHP INI basic settings, dovrete aprire il menu a tendina e selezionare il vostro dominio. Cercate la sezione memory_limit e inserite il valore desiderato. Cliccate su Apply per salvare le modifiche.

Potreste anche provare ad utilizzare il File Manager di cPanel. Questo è molto simile all’accesso via FTP. Nella sezione File della vostra home page, cliccate su File Manager. Trovate la vostra cartella public/public-html (o come si chiama) e aprite wp-config.php.

Cercate la riga WP_MEMORY_LIMIT come indicato nella sezione precedente e cambiate il valore con quello desiderato. Salvate le vostre modifiche e assicuratevi di applicarle, e questo è tutto quello che dovete fare.

Quale Dovrebbe Essere il Limite di Memoria PHP?

Quando andate a cambiare il limite di memoria, il primo impulso potrebbe essere quello di impostarlo a 900 MB o qualcosa del genere – il più alto possibile. Ma questa può essere in realtà una pessima idea.

Se uno script del vostro sito si dovesse rompere, potrebbe rapidamente andare fuori controllo e mandare in crash l’intero server. Anche se il vostro sito è ospitato su un hardware potente, uno script che consuma tutta la memoria potrebbe comunque causare seri problemi.

Anche gli script non configurati in modo corretto, ma non abbastanza da causare problemi, potrebbero passare inosservati. La maggior parte degli script PHP sono molto piccoli, e l’errore del limite di memoria serve come segnale di avvertimento che qualcosa sta andando storto nel backend. Impostate un valore troppo alto, e potreste perdere gli script che affossano il sito senza saperlo.

Si dovrebbe impostare il limite di memoria PHP al valore più basso possibile, pur consentendo al sito di funzionare normalmente.

128 MB sono un buon punto di partenza. È una quantità di memoria sufficiente che basterà alla maggior parte dei plugin intensivi. Se sapete che avrete bisogno di un po’ di energia extra, 256 MB basteranno anche ai plugins più pesanti. E se sapete con certezza di avere una vera e propria centrale elettrica, 512 MB è il massimo assoluto che dovreste impostare. Nel 90% dei casi, non dovreste mai avere bisogno di aumentare il limite di memoria oltre i 256 MB.

Cosa Fare se la Modifica del Limite di Memoria non Funziona?

Se, dopo aver modificato il vostro file PHP avete ancora l’errore di memoria, allora il problema è uno dei due: o il vostro host ha allocato pochissime risorse, oppure c’è uno script PHP sul vostro server che occupa troppa memoria.

Anche in questo caso, bisognerebbe disattivare i plugin uno alla volta fino a quando non individuate il colpevole. Con 128-256 MB di memoria, nessun plugin dovrebbe occupare tanto spazio senza farne cenno da qualche parte nella documentazione. Disattivatelo e informate gli autori dei plugin di ciò che è successo.

Riscontrate ancora l’errore anche dopo che tutti i plugin sono stati disattivati? Ci deve essere qualche conflitto o un’altra applicazione PHP a causare il problema. Questo è più di quanto si possa gestire da soli, quindi chiedete aiuto al vostro host.

Se il problema non è affatto un plugin, probabilmente la colpa è del vostro host che ha impostato il limite di memoria ad un valore troppo basso. Probabilmente siete su un hosting con diviso, che è noto per l’allocazione di una quantità molto piccola di memoria – comprensibilmente, dal momento che, se un sito sta utilizzando troppa RAM, impantana l’intero sistema per decine di altri siti web.

La vostra unica scelta è quella di passare a un piano che fornisca più risorse. Questo potrebbe finire per essere costoso, soprattutto se stavate solo cercando di installare un plugin intensivo su un nuovo sito. Se non avete ancora molti visitatori, tutte le altre risorse ottenute con l’upgrade non vi saranno di grande aiuto.

Potreste anche passare ad un host, come Kinsta, che fornisce da subito una maggiore quantità di memoria.

Riepilogo

Il limite di memoria PHP esiste per un motivo legittimo: non si deve lasciare che i processi occupino più RAM di quanto dovrebbero. Ma raggiungere il limite e imbattersi in uno schermo bianco della morte mentre si utilizza un plugin legittimo, può essere abbastanza fastidioso.

Alla fine, sta al vostro host decidere a quanta memoria PHP avete accesso. Se fermano l’asticella ad un’altezza troppo bassa, è impossibile aumentarla.

Tuttavia, a volte il vostro sito utilizzerà meno risorse di quelle a cui avete realmente accesso. In questo caso, è possibile aumentare la memoria. Provate ad impostarla a 128 o 256 MB (come opzione predefinita per tutti i piani di Kinsta) perché non dovrebbe essere troppo alta.

Se nessuno di questi metodi funziona, probabilmente è la mancanza di risorse assegnate a causare il problema, e non un’impostazione da cambiare. Contattate il vostro host e chiedetegli come averne di più, oppure passate a un nuovo host come Kinsta che vi dà più memoria di quanta ve ne servirà.