Tempo stimato : 10 minuti
Difficoltà : Intermedia ⭐⭐
Prerequisiti : Accesso a cPanel
📋 Introduzione
Il file php.ini è il file di configurazione principale di PHP. Controlla impostazioni essenziali come:
- 📦 La dimensione massima di upload dei file
- 🧠 La memoria allocata agli script
- ⏱️ Il tempo di esecuzione degli script
- 🔧 Le estensioni PHP attivate
- 🐛 L'visualizzazione degli errori
Su cPanel, puoi modificare queste impostazioni facilmente grazie al MultiPHP INI Editor, senza dover modificare manualmente i file di configurazione.
🎯 Quando Modificare le Impostazioni PHP?
Situazioni comuni
| ❌ Problema riscontrato | ✅ Impostazione da modificare |
|---|---|
| "Il file caricato supera la upload_max_filesize" | upload_max_filesize |
| "Dimensione massima della memoria esaurita" | memory_limit |
| "Tempo massimo di esecuzione superato" | max_execution_time |
| "Post Content-Length supera il limite" | post_max_size |
| Formulari complessi non si registrano | max_input_vars |
| Timeout durante importazioni/esportazioni | max_input_time |
| Errori 500 su siti WordPress/WooCommerce | Più impostazioni |
📊 Le Impostazioni PHP Essenziali
Tabella riepilogativa
| Impostazione | Descrizione | Default server | Consigliato WordPress | Consigliato WooCommerce |
|---|---|---|---|---|
memory_limit | Memoria max per script | 128M | 256M | 512M |
upload_max_filesize | Dimensione max di un file caricato | 2M - 64M | 64M | 128M |
post_max_size | Dimensione max dei dati POST | 8M | 128M | 256M |
max_execution_time | Durata max di esecuzione (sec) | 30 | 300 | 600 |
max_input_time | Durata max lettura dati (sec) | 60 | 300 | 600 |
max_input_vars | Numero max di variabili | 1000 | 3000 | 5000 |
📖 Descrizione Dettagliata delle Impostazioni
🧠 memory_limit
Descrizione : Quantità massima di memoria che uno script PHP può utilizzare.
memory_limit = 256M
| Tipo di sito | Valore consigliato |
|---|---|
| Sito vetrina semplice | 128M |
| Blog WordPress | 256M |
| WordPress + plugin | 256M - 512M |
| WooCommerce | 512M |
| Applicazione PHP pesante | 512M - 1024M |
Errore associato :
Fatal error: Allowed memory size of 134217728 bytes exhausted
⚠️ Importante :
memory_limitdeve essere superiore o uguale apost_max_size.
📤 upload_max_filesize
Descrizione : Dimensione massima di un file individuale durante un upload.
upload_max_filesize = 64M
| Utilizzo | Valore consigliato |
|---|---|
| Immagini web ottimizzate | 16M |
| Foto ad alta risoluzione | 32M |
| Temi/plugin WordPress | 64M |
| Video brevi | 128M |
| File di grandi dimensioni | 256M+ |
Errore associato :
The uploaded file exceeds the upload_max_filesize directive in php.ini
💡 Consiglio : Controlla anche i limiti lato WordPress : Media → Aggiungi.
📨 post_max_size
Descrizione : Dimensione massima totale dei dati inviati tramite POST (include i file caricati).
post_max_size = 128M
Regola importante :
post_max_size ≥ upload_max_filesize
💡 Consiglio : Imposta
post_max_sizeleggermente superiore aupload_max_filesizeper tenere conto dei metadati.
Esempio :
upload_max_filesize = 64Mpost_max_size = 68Mo128M
Errore associato :
Warning: POST Content-Length of X bytes exceeds the limit of Y bytes
⏱️ max_execution_time
Descrizione : Durata massima (in secondi) durante la quale uno script può essere eseguito.
max_execution_time = 300
| Operazione | Valore consigliato |
|---|---|
| Navigazione normale | 30 (default) |
| Import/export WordPress | 300 |
| Generazione di report | 300 - 600 |
| Migrazione di sito | 600 - 900 |
| Backup automatici | 600 |
Errore associato :
Fatal error: Maximum execution time of 30 seconds exceeded
⚠️ Attenzione : Su hosting condiviso, questo valore può essere limitato (spesso a 90-120 secondi).
⏳ max_input_time
Descrizione : Durata massima (in secondi) per analizzare i dati di input (POST, GET, upload).
max_input_time = 300
| Situazione | Valore consigliato |
|---|---|
| Formulari semplici | 60 (default) |
| Upload di grandi file | 300 |
| Import CSV/XML | 300 - 600 |
| Connessione lenta | 600 |
💡
-1= nessun limite (sconsigliato in produzione).
🔢 max_input_vars
Descrizione : Numero massimo di variabili di input accettate (campi del modulo).
max_input_vars = 3000
| Tipo di contenuto | Valore consigliato |
|---|---|
| Sito semplice | 1000 (default) |
| WordPress con menu complessi | 3000 |
| WooCommerce con attributi | 5000 |
| Costruttori di pagine (Elementor, Divi) | 5000 - 10000 |
Sintomi se troppo bassi :
- Menu WordPress che non si registrano completamente
- Opzioni del tema che scompaiono
- Variazioni WooCommerce non salvate
🐛 display_errors
Descrizione : Mostra gli errori PHP direttamente sulla pagina.
display_errors = Off # Produzione (consigliato)
display_errors = On # Solo sviluppo
⚠️ Sicurezza : Sempre disattivato in produzione! Gli errori possono rivelare informazioni sensibili.
📝 error_reporting
Descrizione : Livello di dettaglio degli errori da segnalare.
| Valore | Descrizione |
|---|---|
E_ALL | Tutti gli errori |
E_ALL & ~E_NOTICE | Errori tranne le notifiche |
E_ALL & ~E_NOTICE & ~E_DEPRECATED | Senze notifiche né deprecazioni |
0 | Nessun errore |
Produzione consigliato :
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
📁 error_log
Descrizione : Percorso del file dove gli errori sono registrati.
error_log = /home/user/logs/php_errors.log
💡 Utile per il debug senza mostrare gli errori ai visitatori.
🔒 allow_url_fopen
Descrizione : Consente l'apertura di file remoti tramite URL.
allow_url_fopen = On # Spesso necessario per WordPress
Utilizzato da :
- Aggiornamenti WordPress
- Recupero di feed RSS
- API esterne
🔐 allow_url_include
Descrizione : Consente l'inclusione di file remoti tramite include/require.
allow_url_include = Off # Sempre disattivato (sicurezza)
⚠️ Sicurezza : Non attivare mai! Rischio elevato di iniezione di codice.
⚙️ Metodo 1 : MultiPHP INI Editor (Modalità Base)
La modalità base offre un'interfaccia semplice con campi pre-configurati.
Passo 1 : Accedere a MultiPHP INI Editor
- Accedi a cPanel
- Nella sezione Software, clicca su MultiPHP INI Editor

Passo 2 : Selezionare la posizione
- Rimani sulla scheda Modalità Base (Basic Mode)
- Nel menu a discesa "Seleziona una posizione", scegli :
- Directory personale (
home) : Si applica a tutti i domini - Document root di un dominio : Si applica solo a quel dominio

- Directory personale (
💡 Consiglio : Per modificare un solo sito, seleziona il suo document root (es:
public_html/miosito.com).
Passo 3 : Modificare le impostazioni
Dopo aver selezionato la posizione, appare un elenco di direttive PHP :
| Direttiva | Campo da modificare |
|---|---|
memory_limit | Inserisci 256M |
upload_max_filesize | Inserisci 64M |
post_max_size | Inserisci 128M |
max_execution_time | Inserisci 300 |
max_input_time | Inserisci 300 |
max_input_vars | Inserisci 3000 |
Passo 4 : Applicare le modifiche
- Clicca sul pulsante Applica (Apply)
- Appare un messaggio di conferma :
✅ Le impostazioni PHP sono state aggiornate con successo.
💡 Le modifiche sono immediate. Nessun riavvio necessario.
🔧 Metodo 2 : MultiPHP INI Editor (Modalità Editor)
La modalità editor consente di aggiungere direttive personalizzate non disponibili in modalità base.
Passo 1 : Passare in modalità Editor
- In MultiPHP INI Editor, clicca sulla scheda Modalità Editor (Editor Mode)
- Seleziona la posizione (dominio o directory personale)
Passo 2 : Aggiungere direttive
Un'area di testo mostra il contenuto attuale del file php.ini. Puoi aggiungere righe :
; === CONFIGURAZIONE PERSONALIZZATA ===
; Memoria e limiti
memory_limit = 512M
upload_max_filesize = 128M
post_max_size = 256M
; Tempo di esecuzione
max_execution_time = 600
max_input_time = 600
; Variabili di input
max_input_vars = 5000
; Gestione degli errori (produzione)
display_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
; Sessioni
session.gc_maxlifetime = 1440
; Fuso orario
date.timezone = Europe/Rome
Passo 3 : Salvare
- Clicca su Salva (Save)
- Controlla che le modifiche siano applicate (vedi sezione Verifica)
📝 Metodo 3 : File .htaccess
Se MultiPHP INI Editor non è disponibile, puoi modificare le impostazioni tramite .htaccess.
Aggiungere le direttive
Apri il file .htaccess nella radice del tuo sito e aggiungi :
# === CONFIGURAZIONE PHP ===
# Memoria
php_value memory_limit 256M
# Upload
php_value upload_max_filesize 64M
php_value post_max_size 128M
# Tempo di esecuzione
php_value max_execution_time 300
php_value max_input_time 300
# Variabili
php_value max_input_vars 3000
# Errori (produzione)
php_flag display_errors Off
php_flag log_errors On
⚠️ Importante : Questo metodo funziona solo con il gestore Apache (mod_php o suPHP). Non funziona con PHP-FPM o CGI.
📄 Metodo 4 : File php.ini personalizzato
Puoi creare un file php.ini nella cartella del tuo sito.
Creare il file
- Attraverso il Gestore file cPanel, vai in
public_html - Crea un nuovo file chiamato
php.ini - Aggiungi il contenuto :
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 300
max_input_time = 300
max_input_vars = 3000
💡 Su alcuni server, il file deve chiamarsi
.user.iniinvece diphp.ini.
📄 Metodo 5 : File .user.ini (PHP-FPM)
Per i server che utilizzano PHP-FPM, crea un file .user.ini :
Creare il file
- In
public_html, crea.user.ini - Aggiungi :
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 300
max_input_time = 300
max_input_vars = 3000
⚠️ Le modifiche tramite
.user.inipossono richiedere 5 minuti per applicarsi (cache PHP-FPM).
✅ Verificare le Modifiche
Metodo 1 : Via WordPress
- Vai su Strumenti → Salute del sito → Informazioni
- Espandi la sezione Server
- Controlla i valori :
- Limite di memoria PHP
- Dimensione massima degli upload
- Tempo massimo di esecuzione
- Variabili di input max
Metodo 2 : Via phpinfo()
- Crea un file
info.phpinpublic_html:
<?php
phpinfo();
?>
- Accedi a
https://tuo-sito.com/info.php - Cerca le impostazioni modificate (Ctrl+F)
- Elimina il file dopo la verifica (sicurezza)
Metodo 3 : Via WordPress (Media)
- Vai su Media → Aggiungi
- La dimensione massima di upload è visualizzata :
Dimensione massima di upload : 64 MB
🎯 Configurazioni Consigliate per Tipo di Sito
Sito vetrina / Blog semplice
memory_limit = 128M
upload_max_filesize = 32M
post_max_size = 64M
max_execution_time = 120
max_input_time = 120
max_input_vars = 1000
WordPress standard
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 300
max_input_time = 300
max_input_vars = 3000
WordPress + Costruttore di pagine (Elementor, Divi, WPBakery)
memory_limit = 512M
upload_max_filesize = 128M
post_max_size = 256M
max_execution_time = 600
max_input_time = 600
max_input_vars = 10000
WooCommerce / E-commerce
memory_limit = 512M
upload_max_filesize = 128M
post_max_size = 256M
max_execution_time = 600
max_input_time = 600
max_input_vars = 5000
PrestaShop
memory_limit = 512M
upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 600
max_input_time = 600
max_input_vars = 20000
Applicazione PHP personalizzata / API
memory_limit = 256M
upload_max_filesize = 128M
post_max_size = 256M
max_execution_time = 300
max_input_time = 300
max_input_vars = 3000
allow_url_fopen = On
🔧 Risoluzione dei Problemi
Le modifiche non si applicano
| ❌ Causa possibile | ✅ Soluzione |
|---|---|
| Cache PHP attiva | Attendere 5 minuti o svuotare la cache |
| Posizione errata selezionata | Controlla di aver selezionato il dominio corretto |
| File .htaccess prioritario | Rimuovi le direttive PHP dal .htaccess |
| Handler PHP incompatibile | Usa MultiPHP INI Editor invece di .htaccess |
| Limite server | Contatta l'hosting (alcuni valori sono limitati) |
Errore 500 dopo modifica
- Via FTP/Gestore file :
- Rinomina
.htaccessin.htaccess.bak - Oppure rimuovi le righe
php_valueaggiunte
- Rinomina
- Via MultiPHP INI Editor :
- Torna ai valori di default
- Modifica una direttiva alla volta per identificare il problema
"php_value not allowed here"
Questo errore significa che il tuo server utilizza PHP-FPM o CGI :
.htaccess: php_value not allowed here
Soluzione : Usa MultiPHP INI Editor o crea un file .user.ini.
La dimensione di upload WordPress non cambia
Controlla questi elementi in ordine :
- ✅
upload_max_filesizeè stato modificato correttamente - ✅
post_max_size≥upload_max_filesize - ✅
memory_limit≥post_max_size - ✅ Nessun plugin WordPress limita l'upload
- ✅ Il tema non definisce un limite
Ordine di priorità dei file :
1. php.ini server (priorità più alta)
2. MultiPHP INI Editor
3. .user.ini o php.ini locale
4. .htaccess
5. wp-config.php (WordPress)
6. functions.php (tema)
max_input_vars ignorato
Alcuni provider di hosting pongono un limite a questo valore. Soluzioni :
- Contattare il supporto per aumentare il limite
- Passare a un'offerta superiore
- Ottimizzare i menu di WordPress (meno elementi)
📋 Elenco Completo delle Direttive PHP Utili
Memoria e risorse
| Direttiva | Descrizione | Esempio |
|---|---|---|
memory_limit | Memoria max per script | 256M |
max_execution_time | Tempo max di esecuzione | 300 |
max_input_time | Tempo max lettura dati | 300 |
max_input_vars | Numero max di variabili | 3000 |
max_input_nesting_level | Profondità max array | 64 |
Caricamento di file
| Direttiva | Descrizione | Esempio |
|---|---|---|
upload_max_filesize | Dimensione max file | 64M |
post_max_size | Dimensione max dati POST | 128M |
max_file_uploads | Numero max file simultanei | 20 |
file_uploads | Consentire caricamenti | On |
Gestione degli errori
| Direttiva | Descrizione | Esempio |
|---|---|---|
display_errors | Mostrare errori | Off |
log_errors | Registrare gli errori | On |
error_reporting | Livello di errori | E_ALL & ~E_NOTICE |
error_log | File di log | /home/user/logs/error.log |
Sessioni
| Direttiva | Descrizione | Esempio |
|---|---|---|
session.gc_maxlifetime | Durata vita sessione (sec) | 1440 |
session.cookie_lifetime | Durata cookie sessione | 0 |
session.save_path | Percorso archiviazione sessioni | /tmp |
Sicurezza
| Direttiva | Descrizione | Esempio |
|---|---|---|
allow_url_fopen | Aprire URL come file | On |
allow_url_include | Includere file remoti | Off |
expose_php | Rivelare versione PHP | Off |
disable_functions | Funzioni disabilitate | exec,shell_exec |
Varie
| Direttiva | Descrizione | Esempio |
|---|---|---|
date.timezone | Fuso orario | Europe/Paris |
default_charset | Codifica predefinita | UTF-8 |
short_open_tag | Tag brevi <? | Off |
output_buffering | Buffer di output | 4096 |
📝 Riepilogo
MODIFICARE I PARAMETRI PHP :
METODO 1 - MultiPHP INI Editor (Consigliato) :
1. cPanel → Software → MultiPHP INI Editor
2. Selezionare il dominio
3. Modificare i valori
4. Cliccare su Applica
METODO 2 - Modalità Editor :
1. Scheda "Modalità Editor"
2. Aggiungere le direttive manualmente
3. Cliccare su Salva
METODO 3 - .htaccess (solo Apache) :
php_value memory_limit 256M
php_value upload_max_filesize 64M
METODO 4 - .user.ini (PHP-FPM) :
memory_limit = 256M
upload_max_filesize = 64M
VALORI CONSIGLIATI WORDPRESS :
├── memory_limit = 256M
├── upload_max_filesize = 64M
├── post_max_size = 128M
├── max_execution_time = 300
├── max_input_time = 300
└── max_input_vars = 3000
REGOLA IMPORTANTE :
memory_limit ≥ post_max_size ≥ upload_max_filesize
VERIFICA :
├── WordPress : Strumenti → Salute del sito → Informazioni → Server
├── phpinfo() : Creare info.php con <?php phpinfo(); ?>
└── Media : Controllare la dimensione max di upload