Skip to content
Centro Assistenza

Come aumentare il limite di memoria di PHP in DirectAdmin

Scopri come modificare i limiti di memoria di PHP sul tuo server dedicato e VPS dal pannello di controllo DirectAdmin.

Gli script scritti in PHP sono tra i pezzi di codice piu pratici che si possano creare. Non devono essere compilati e si sviluppano abbastanza rapidamente, quindi sono molto usati e molto utili.

Tuttavia hanno un grande svantaggio. Nel contesto degli script lato server, uno script scritto male puo consumare facilmente tutte le risorse disponibili del server e persino causare malfunzionamenti in altre parti del sistema. Per questo, in PHP, che e un linguaggio di scripting, esiste un limite predefinito su quanta memoria del server puo usare un singolo script.

Anche se nella maggior parte dei casi e una protezione molto utile, ci sono situazioni in cui e necessario aumentare questo limite. Oggi ti mostreremo esattamente come farlo, oltre a darti alcuni consigli utili su altri limiti configurabili in PHP. Ma prima, vediamo brevemente cosa rappresenta il limite di memoria di PHP.

Che cos'e l'impostazione memory_limit di PHP?

A differenza di quanto molti pensano, l'impostazione memory_limit di PHP si applica a livello di singolo script, cio significa che indica la quantita massima di memoria del server che un solo script PHP puo consumare. La documentazione ufficiale di PHP lo descrive cosi:

Imposta la memoria massima, in byte, che uno script puo consumare. Aiuta a evitare che script scritti male consumino tutta la memoria disponibile del server.

Fonte: https://www.php.net/manual/es/ini.core.php#ini.memory-limit

Vediamolo meglio con un esempio. Se non hai modificato il limite di memoria predefinito di PHP, di solito sara impostato a 128M. Supponiamo che tu stia eseguendo sette script e che ognuno richieda 80M. Anche se il consumo totale di memoria e di 560M, il limite di 128M non viene ancora raggiunto, perche ciascuno script usa meno di quel valore. Ora, se uno degli script decide improvvisamente di aver bisogno di 130M, li comparira il problema. Apparira un errore simile a questo:

Fatal error: Allowed memory size of x bytes exhausted (tried to allocate x bytes) in /path/to/php/script

oppure:

PHP Fatal error: Out of memory (allocated x) (tried to allocate x bytes) in /path/to/php/script

Vediamo cosa possiamo fare per risolvere questi errori.

Come aumentare il limite di memoria di PHP in DirectAdmin

La prima cosa da chiederti e se il consumo di memoria sia ragionevole. Se non lo e, forse la soluzione piu sensata e correggere i problemi del tuo script che ne causano il consumo eccessivo. Se invece ritieni che il consumo sia corretto, allora dovrai regolare la configurazione del server o del VPS.

Segui questi semplici passaggi per aumentare il limite di memoria di PHP in DirectAdmin:

Passo 1: per cambiare il limite di memoria di PHP in DirectAdmin devi modificare il file php.ini, ma prima devi trovarlo. Un modo semplice per sapere quale php.ini sta usando PHP e chiederglielo direttamente, ad esempio:

/usr/local/bin/php --ini | grep 'Loaded Configuration File'

Se stai usando la versione predefinita di PHP da riga di comando (CLI), il tuo php.ini si trovera di solito in:

/usr/local/lib/php.ini

Passo 2: ora dovrai modificare la riga memory_limit con il valore desiderato. Se non trovi memory_limit, aggiungi la seguente riga alla fine di php.ini:

memory_limit = 128M; /* Cambia il 128M in base alle tue esigenze */

Salva il file. Puoi usare l'editor di testo nano da una sessione SSH.

Passo 3: riavvia Apache.

Note aggiuntive: tieni presente che anche queste impostazioni possono essere correlate:

Se vuoi aumentare la dimensione massima dei dati inviati tramite POST:

post_max_size = 8M

Se vuoi cambiare la dimensione massima consentita per i file caricati:

upload_max_filesize = 2M

Conclusione

Il limite di memoria di PHP esiste per una buona ragione. Senza di esso, uno script scritto male puo consumare facilmente tutte le risorse del server e causare molti problemi. Tuttavia, se hai un sistema piu robusto e desideri assegnare piu risorse agli script PHP, puoi cambiare la memoria massima concessa a ogni script semplicemente modificando un file di configurazione. In questa breve guida ti abbiamo mostrato come farlo. Se hai domande o suggerimenti, lasciali nella sezione commenti qui sotto.