Limiti PHP: upload_max_filesize, post_max_size e timeout

I limiti PHP di caricamento e durata devono essere configurati in modo coerente. upload_max_filesize limita il singolo file, post_max_size limita l’intera richiesta POST e deve essere superiore al file, memory_limit deve lasciare memoria sufficiente allo script, mentre max_execution_time e max_input_time controllano tempi diversi.

Quando WordPress mostra “Il file supera la dimensione massima”, un’importazione si interrompe o una richiesta va in timeout, aumentare un solo valore può non bastare. Esistono inoltre limiti dell’applicazione, del web server, del proxy e del piano hosting.

Questa guida spiega upload_max_filesize, post_max_size e max_execution_time e mostra come modificarli senza scegliere valori eccessivi. La relazione upload_max_filesize post_max_size è il primo controllo da effettuare.

Significato delle principali direttive

DirettivaFunzioneEsempio
upload_max_filesizeDimensione massima di un singolo file caricato via PHP64M
post_max_sizeDimensione massima dell’intera richiesta POST, file e campi compresi72M o superiore
memory_limitMemoria massima allocabile da un processo PHP256M
max_execution_timeTempo massimo di esecuzione dello script120 secondi
max_input_timeTempo massimo per analizzare i dati in ingresso120 secondi
max_input_varsNumero massimo di variabili accettate in input1000 o valore previsto dal sito

I valori della tabella sono esempi, non impostazioni universali. Usa il minimo necessario per l’operazione e rispetta i limiti del piano.

Relazione tra upload_max_filesize e post_max_size

post_max_size deve essere superiore a upload_max_filesize, perché la richiesta contiene anche campi, intestazioni e talvolta più file.

Esempio per un file massimo di 64 MB:

upload_max_filesize = 64M
post_max_size = 72M

Se carichi più file nella stessa richiesta, la somma può superare post_max_size anche quando ogni file rispetta upload_max_filesize.

memory_limit deve essere maggiore del file?

Non esiste una formula unica. Uno script può salvare il file senza caricarlo interamente in memoria oppure può decomprimerlo, analizzarlo e crearne più copie. Immagini, ZIP, XML, CSV, PDF e fogli di calcolo possono richiedere molta più memoria della dimensione sul disco.

Impostare memory_limit uguale a upload_max_filesize non garantisce l’elaborazione. Osserva l’errore reale e aumenta con prudenza.

max_execution_time e max_input_time

max_input_time riguarda il tempo impiegato da PHP per ricevere e analizzare i dati di input. max_execution_time riguarda l’esecuzione dello script, con differenze possibili in base a sistema operativo e modalità PHP.

Un upload lento può inoltre essere interrotto da:

  • timeout del browser o della rete;
  • proxy e CDN;
  • web server;
  • applicazione;
  • firewall;
  • limite del processo PHP;
  • operazione successiva al caricamento.

Aumentare max_execution_time non risolve automaticamente un timeout Cloudflare 524 o un limite imposto da un altro livello.

Come modificare i limiti PHP in cPanel

Su Xlogic i principali limiti PHP si possono modificare da cPanel → Software → Select PHP Version → Options quando il dominio utilizza CloudLinux PHP Selector e una versione Alt-PHP. Da questa schermata possono essere disponibili upload_max_filesize, post_max_size, memory_limit, max_execution_time, max_input_time e max_input_vars.

Metodo 1: Select PHP Version e scheda Options

  1. apri cPanel → Software → Select PHP Version;
  2. verifica che sia selezionata la versione PHP effettivamente usata dal sito;
  3. apri la scheda Options;
  4. individua la direttiva da modificare;
  5. scegli uno dei valori consentiti dall’interfaccia;
  6. salva oppure attendi la conferma del salvataggio automatico;
  7. controlla il valore effettivo nell’applicazione e ripeti il test.

I valori disponibili nella scheda Options rappresentano quelli consentiti dalla configurazione Xlogic. Non è possibile superare eventuali limiti massimi del server o del piano. Queste opzioni PHP non aumentano CPU, memoria fisica, I/O, processi o Entry Processes dell’account CloudLinux.

Metodo 2: MultiPHP INI Editor

Usa MultiPHP INI Editor quando il dominio è gestito da EA-PHP tramite MultiPHP Manager, oppure quando PHP Selector mostra native e le opzioni CloudLinux non sono applicate.

  1. apri cPanel → Software → MultiPHP INI Editor;
  2. seleziona il dominio corretto;
  3. usa Basic Mode quando la direttiva è disponibile;
  4. modifica un valore alla volta;
  5. salva;
  6. controlla il risultato nell’applicazione.

Editor Mode modifica direttamente le direttive e richiede maggiore attenzione. Un errore di sintassi può impedire l’applicazione delle impostazioni. Non configurare lo stesso parametro con valori differenti sia in Select PHP Version sia in MultiPHP INI Editor.

Metodo .user.ini

Quando previsto dalla configurazione PHP, un file .user.ini nella directory del sito può contenere:

upload_max_filesize = 64M
post_max_size = 72M
memory_limit = 256M
max_execution_time = 120
max_input_time = 120

Non creare contemporaneamente valori diversi in PHP Selector, MultiPHP INI Editor, .user.ini e wp-config.php. La presenza di più livelli rende difficile sapere quale prevale.

Come verificare i valori effettivi

In WordPress consulta Strumenti → Salute del sito → Informazioni → Server e Gestione media per il limite di upload mostrato. Il valore visualizzato dall’applicazione può essere il minimo tra più limiti.

Puoi usare temporaneamente una pagina diagnostica, ma elimina subito qualsiasi file phpinfo().

Ordine e ambito delle configurazioni

Le direttive possono essere definite a livello server, versione PHP, account, dominio e directory. Il valore effettivo dipende dal gestore PHP e dal tipo di direttiva. Per questo non è sufficiente trovare una riga in un file: bisogna controllare ciò che PHP applica realmente alla richiesta del dominio.

Quando un account contiene più siti, seleziona sempre il dominio corretto nel MultiPHP INI Editor. Un .user.ini inserito nella document root può influenzare anche sottodirectory, mentre un file collocato nel percorso sbagliato può non avere alcun effetto. Evita copie differenti della stessa direttiva.

Limiti del web server e del proxy

Anche con PHP configurato correttamente, il web server o un proxy possono rifiutare il corpo della richiesta o interrompere una connessione troppo lunga. Se il messaggio è HTTP 413, 502, 504 o Cloudflare 524, conserva codice e intestazioni: il problema potrebbe non essere una direttiva PHP.

WordPress continua a mostrare il vecchio limite

  • verifica di aver selezionato il dominio corretto;
  • controlla la versione PHP realmente usata;
  • attendi l’aggiornamento della cache delle direttive .user.ini;
  • controlla valori duplicati;
  • verifica limiti imposti dall’applicazione o dal plugin;
  • non confondere il limite media con quello di importazione del plugin.

Importazioni grandi: soluzione migliore del timeout enorme

Per CSV, XML e cataloghi usa lotti più piccoli, ripresa automatica e processi pianificati. Una singola richiesta web di molti minuti è fragile: può essere interrotta da rete, browser o proxy anche con PHP configurato correttamente.

Per archivi del sito utilizza strumenti di backup e ripristino progettati per operazioni lunghe, come JetBackup 5, invece di caricare manualmente file enormi attraverso WordPress.

Valori troppo alti: rischi

  • processi PHP occupati per molti minuti;
  • maggiore consumo di memoria per richiesta;
  • raggiungimento dei limiti CloudLinux;
  • code e rallentamenti per altri visitatori;
  • operazioni difettose che impiegano più tempo prima di fallire;
  • superficie maggiore per richieste abusive.

Non impostare timeout illimitati o memoria illimitata su un sito pubblico. Correggi l’elaborazione e usa valori proporzionati.

Errori frequenti e relativo controllo

MessaggioControllo principale
File exceeds the maximum upload sizeupload_max_filesize e limite applicazione
POST Content-Length exceeds the limitpost_max_size
Allowed memory size exhaustedmemory_limit e causa del consumo
Maximum execution time exceededmax_execution_time e operazione lenta
Too many input variablesmax_input_vars e struttura del form
Gateway timeoutPHP, web server, proxy, origine e durata richiesta

Per la memoria consulta Allowed memory size exhausted; per cambiare versione ed estensioni usa PHP Selector in cPanel.

Quando aprire un ticket Xlogic

Apri un ticket se il valore salvato non viene applicato, l’interfaccia non offre la direttiva necessaria o l’operazione continua a fallire con un errore server. Indica dominio, versione PHP, valori attuali e richiesti, file o importazione, dimensione, durata e messaggio completo.

Non inviare password o file contenenti dati personali senza accordo e canale appropriato.

Fonti tecniche ufficiali

Domande frequenti sui limiti PHP

post_max_size deve essere più grande di upload_max_filesize?

Sì. La richiesta POST contiene il file e altri dati. Se i valori sono uguali, l’overhead o più file possono superare post_max_size.

Aumentare max_execution_time risolve ogni timeout?

No. Possono intervenire timeout del web server, proxy, CDN, browser o applicazione. Devi identificare il livello che interrompe la richiesta.

Perché WordPress mostra ancora il vecchio limite?

Potresti aver modificato un’altra versione PHP o un altro dominio, avere direttive duplicate oppure incontrare un limite più basso dell’applicazione o del server.

Posso impostare tutti i valori al massimo?

Non è consigliato. Valori eccessivi aumentano consumo e durata dei processi e possono portare ai limiti CloudLinux senza correggere la causa.

Qual è il metodo migliore per importazioni enormi?

Dividi il lavoro in lotti, usa ripresa e cron oppure uno strumento progettato per operazioni lunghe. Una singola richiesta web di molti minuti è poco affidabile.

Limiti PHP: upload_max_filesize, post_max_size e timeout ultima modifica: 2026-08-01T16:01:46+02:00 da Team tecnico Xlogic

Ti è piaciuto questo Post?