“Allowed memory size exhausted”, “Il file caricato supera la dimensione massima consentita”, “Maximum execution time exceeded”: sono messaggi che prima o poi incontra chiunque gestisca un sito in PHP. Non indicano un guasto, ma un limite: PHP ha alcune soglie che proteggono il server e gli altri siti da script che consumano troppo. Capire cosa sono ti aiuta a distinguere quando ha senso alzarle e quando, invece, il problema è altrove.
I limiti principali
| Impostazione | Cosa regola | Errore tipico |
|---|---|---|
memory_limit |
la memoria massima che un singolo script PHP può usare | “Allowed memory size of … bytes exhausted” |
upload_max_filesize |
la dimensione massima di un singolo file caricato da un modulo | “Il file supera la dimensione massima consentita” |
post_max_size |
la dimensione massima di tutti i dati inviati insieme da un modulo | il caricamento “non fa nulla” o il modulo si svuota |
max_execution_time |
il tempo massimo di esecuzione di uno script, in secondi | “Maximum execution time of … seconds exceeded” |
max_input_vars |
il numero massimo di campi inviati da un modulo | salvataggi di menu o opzioni che si interrompono a metà |
Fra upload_max_filesize e post_max_size c’è un legame: il secondo deve essere uguale o più grande del primo, altrimenti il primo non serve a nulla.
Come vedere i valori attuali
In WordPress il modo più semplice è Strumenti › Salute del sito › Info, sezione “Server”: trovi limite di memoria, dimensione massima di upload e tempo massimo di esecuzione. PrestaShop mostra informazioni simili nella sezione dei parametri avanzati dedicata alle informazioni di configurazione.
In alternativa puoi creare un file temporaneo, ad esempio info-temp.php, in public_html:
<?php phpinfo();
Aprilo dal browser e cerca le voci che ti interessano. Cancellalo subito dopo: mostra molte informazioni sulla configurazione che non devono restare pubbliche.
Prima di alzare un limite, chiediti perché lo stai superando
È la domanda più importante. Alzare i limiti a caso è come allargare la cintura invece di chiedersi perché i pantaloni stringono.
Memoria esaurita
Se capita durante un’operazione occasionale e pesante (un’importazione di prodotti, la generazione di un report, un aggiornamento importante), un aumento può essere giustificato. Se invece capita su pagine normali, visitate da tutti, il problema è quasi sempre un plugin che carica troppo: aumentare la memoria nasconde il sintomo e il sito resta lento. Controlla nel log degli errori quale file sta consumando (guida: log di accesso e di errore).
Tempo di esecuzione superato
Uno script che impiega più di qualche decina di secondi per costruire una pagina ha un problema, e un visitatore non aspetterà così tanto. Le operazioni lunghe per natura (importazioni, esportazioni, invio di newsletter) vanno spezzate in lotti o eseguite con un’operazione pianificata (guida: cron) o da riga di comando. Spesso le query lente al database sono la vera causa: Database Intelligence ti aiuta a individuarle.
Upload troppo grande
Qui il limite è più spesso un ostacolo reale, ad esempio per caricare un video o un archivio. Ma chiediti se quel file debba davvero passare dal modulo del CMS: per file molto grandi l’FTP è più adatto e non dipende dai limiti di PHP (guida: configurare FileZilla). E per i video, una piattaforma dedicata è quasi sempre una scelta migliore che ospitarli sul sito.
Troppi campi nei moduli
Se salvando un menu molto lungo, le varianti di un prodotto o una pagina di opzioni corposa alcune voci “spariscono”, il colpevole può essere max_input_vars. Di solito basta un aumento moderato.
Come modificare i limiti
Il modo corretto dipende da come PHP viene eseguito sul tuo piano (LiteSpeed sui piani shared, WordPress, WooCommerce, cloud e rivenditori; Apache con Nginx davanti sui piani PrestaShop e Magento). Per questo ti sconsigliamo di copiare le istruzioni che trovi in rete:
- le righe
php_valuenel file.htaccess, a seconda della configurazione, possono essere ignorate oppure provocare un errore 500; - la costante
WP_MEMORY_LIMITdi WordPress permette di chiedere più memoria entro il limite già consentito dal server, ma non lo supera; - i plugin che promettono di “aumentare i limiti” fanno le stesse cose, con gli stessi limiti.
Se nel pannello DirectAdmin del tuo piano trovi le opzioni di PHP, puoi regolare lì i valori; in caso contrario, o se non sei sicuro del valore giusto, apri un ticket indicando quale limite ti serve alzare, a quale valore e perché. Ti diciamo noi qual è il modo corretto per il tuo piano o lo impostiamo direttamente.
Valori sensati da cui partire
Non esiste un numero giusto per tutti, ma qualche indicazione di massima:
- per la memoria, un sito WordPress normale vive bene con i valori standard; i negozi online con molti plugin chiedono di più. Valori enormi raramente servono e mascherano problemi;
- per il tempo di esecuzione, se ti servono minuti invece di secondi, l’operazione va spostata fuori dalle pagine web;
- per gli upload, imposta il valore che ti serve davvero, non il massimo possibile: un limite alto rende più facile caricare file indesiderati.
Dopo il cambio di versione PHP
Ogni versione di PHP ha le sue impostazioni. Se cambi versione dal pannello (guida: cambiare versione PHP) e un limite che avevi alzato torna al valore di prima, è normale: verifica di nuovo i valori dopo ogni cambio.
In sintesi
- Leggi il messaggio d’errore e capisci quale limite è coinvolto.
- Chiediti se il limite è davvero troppo basso o se c’è qualcosa che consuma troppo.
- Se serve davvero un aumento, chiedilo con un ticket dall’area clienti, spiegando l’operazione che devi fare.