“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_value nel file .htaccess, a seconda della configurazione, possono essere ignorate oppure provocare un errore 500;
  • la costante WP_MEMORY_LIMIT di 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

  1. Leggi il messaggio d’errore e capisci quale limite è coinvolto.
  2. Chiediti se il limite è davvero troppo basso o se c’è qualcosa che consuma troppo.
  3. Se serve davvero un aumento, chiedilo con un ticket dall’area clienti, spiegando l’operazione che devi fare.

Altri articoli su Pannello e area clienti

Parliamone

Un hosting che ti spiega le cose, e poi le fa

Questi articoli nascono dalle domande dei nostri clienti. Se vuoi un hosting dove dietro ogni risposta c’è un tecnico vero, parliamone.

  • 4,9 su 5 su Trustpilot264 recensioni, il 96% a cinque stelle
  • Risponde un tecnicoIn italiano, da chi gestisce i server
  • Il trasloco lo facciamo noiSito, database e posta, controllati prima di spostare i DNS