In breve: il problema PHP .user.ini non applicato può dipendere dalla directory sbagliata, da una direttiva non modificabile, da un handler differente o dalla cache di configurazione non ancora scaduta.
Indice dei contenuti
Che cosa significa
Il valore scritto in .user.ini non coincide con quello effettivamente utilizzato dalla richiesta web. Prima di modificare altri file bisogna stabilire quale versione PHP, SAPI, directory e configurazione stanno elaborando la pagina interessata.

Come funziona .user.ini
PHP elabora i file .user.ini con i SAPI CGI e FastCGI. La ricerca parte dalla directory dello script richiesto e risale fino alla document root. Il nome del file è controllato dalla direttiva user_ini.filename; se questa è vuota, la funzione è disabilitata.
Non tutte le direttive sono ammesse: possono essere cambiate soltanto quelle classificate INI_PERDIR o INI_USER. Inoltre PHP ricontrolla periodicamente il file secondo user_ini.cache_ttl, normalmente 300 secondi.
Diagnosi passo per passo
- Crea temporaneamente una pagina protetta che mostri versione PHP, SAPI,
user_ini.filename,user_ini.cache_ttle valore della direttiva interessata. - Verifica la document root e la directory reale dello script che presenta il problema.
- Controlla che il file si chiami esattamente
.user.ini, sia leggibile e contenga una sintassi comememory_limit = 256M. - Consulta la modalità di modifica della direttiva nel manuale PHP.
- Attendi almeno il TTL configurato e ripeti la stessa richiesta web.
- Confronta il risultato con MultiPHP INI Editor e con la versione PHP assegnata al dominio.
- Rimuovi subito la pagina diagnostica perché può esporre informazioni sull’ambiente.
Esegui una sola variazione alla volta e annota valore iniziale, modifica, percorso e ora della prova. In questo modo puoi distinguere un errore di sintassi da un ritardo dovuto alla cache. Se più domini usano versioni PHP differenti, ripeti la verifica su ciascun dominio senza assumere che condividano pool, file o impostazioni.

Correzioni in base alla causa
| Causa | Correzione |
|---|---|
| Directory errata | Sposta .user.ini nella directory realmente elaborata oppure configura il valore dal pannello corretto. |
| Direttiva non consentita | Usa il livello di configurazione previsto oppure richiedi una modifica amministrativa. |
| Versione PHP differente | Allinea il dominio alla versione prevista e controlla nuovamente il SAPI. |
| Cache non scaduta | Attendi user_ini.cache_ttl; il riavvio di un pool è un’operazione amministrativa, non il primo tentativo. |
| Sintassi o unità errata | Correggi nome, valore e unità della direttiva senza inserire sintassi Apache. |
Verifica finale
Controlla la direttiva con ini_get() o con una pagina diagnostica temporanea eseguita dallo stesso dominio e percorso. Il valore deve restare corretto dopo una nuova richiesta e non deve produrre errori nei log. Verifica separatamente web, cron e CLI perché possono usare configurazioni diverse.
Errori da evitare
- Lasciare online una pagina
phpinfo()accessibile pubblicamente. - Usare
php_valuein.htaccesssenza verificare l’handler: con alcune configurazioni può provocare un errore 500. - Aumentare limiti PHP senza misurare memoria, timeout e causa reale.
- Confrontare PHP CLI con il sito come se utilizzassero necessariamente lo stesso file di configurazione.
Se il problema persiste
Registra dominio, directory dello script, versione PHP, SAPI, direttiva, valore atteso, valore effettivo e ora della prova. Allega soltanto estratti di log pertinenti e rimuovi percorsi, token o credenziali non necessari.
Confronta anche la configurazione caricata indicata da PHP con quella attesa dal pannello. Un file corretto può risultare inefficace quando la richiesta raggiunge un altro pool, un alias di dominio o una document root diversa da quella controllata.
Guide Xlogic correlate
- Cambiare versione ed estensioni PHP
- Configurare i limiti PHP in cPanel
- Allowed memory size exhausted in WordPress
Domande frequenti
Dove deve essere collocato il file .user.ini?
Nella directory interessata dalla configurazione, considerando il percorso dello script e la document root. L’effetto può propagarsi alle sottodirectory secondo il funzionamento del SAPI.
Perché la modifica non appare subito?
PHP può mantenere in cache i file .user.ini per il tempo definito da user_ini.cache_ttl, pari normalmente a 300 secondi se non modificato.
Tutte le direttive PHP possono essere cambiate?
No. Nei file .user.ini sono ammesse soltanto le direttive con modalità INI_PERDIR o INI_USER.
La configurazione vale anche per PHP CLI?
No. I file .user.ini sono elaborati dai SAPI CGI/FastCGI; comandi CLI e cron possono usare un file php.ini e una versione PHP differenti.
Fonti tecniche
- PHP Manual — .user.ini files
- PHP Manual — modalità di modifica delle direttive
- cPanel — MultiPHP INI Editor