
🔍 Dove si trova php.ini in WordPress: trovare e configurare le impostazioni
Plugin non si installa, il caricamento del tema si interrompe a metà? Il pannello di amministrazione mostra «Allowed memory size exhausted»? Nella maggior parte dei casi, la colpa è di un solo file: php.ini.
Questo è il file di configurazione principale di PHP: stabilisce quanta memoria allocare agli script, per quanto tempo eseguirli e quali dimensioni di file accettare. Sugli hosting tipici, questi limiti sono impostati al ribasso, l’host risparmia risorse.
Ecco dove trovare php.ini in qualsiasi ambiente (WAMP, XAMPP, Linux, cPanel) e quali cinque direttive modificare per WordPress nel 2026. Con numeri precisi, senza tirare a indovinare.
💡 Panoramica rapida:
- Crea un file PHP di test con la funzione
phpinfoe vedi subito il percorso diphp.inisu qualsiasi server - In WAMP, XAMPP e cPanel il percorso è disponibile tramite l’interfaccia, senza modificare codice
- Impostazioni chiave per WordPress: memory_limit, max_execution_time, upload_max_filesize, post_max_size e max_input_vars
- Dopo le modifiche, verifica i limiti effettivi con
phpinfo()o WP-CLI per accertarti che l’host non abbia ignorato le modifiche
Cos’è php.ini e perché modificarlo
php.ini è un file di testo con direttive che controllano il comportamento di PHP sul server. Viene caricato a ogni avvio del processo PHP e definisce i limiti: memoria, tempo di esecuzione, dimensione dei file caricati, livello di errore.
Per WordPress, cinque direttive sono critiche. memory_limit alloca RAM per l’elaborazione delle pagine, temi e builder moderni (Gutenberg, Elementor) richiedono facilmente 256 MB e oltre. max_execution_time limita i secondi di esecuzione dello script: se un plugin importa contenuti demo o WooCommerce genera report, il valore predefinito di 30 secondi garantisce un’interruzione. upload_max_filesize e post_max_size controllano i caricamenti: un tema in ZIP può pesare oltre 40 MB, mentre il limite dell’host è di 2 MB. Infine, max_input_vars limita il numero di variabili POST: con 1000 voci di menu e un valore predefinito di 2000, il salvataggio del menu si interrompe senza preavviso.
Buona notizia: php.ini si può modificare anche su hosting condivisi economici. Cattiva notizia: prima bisogna trovarlo, e il percorso dipende dal sistema operativo, dal pannello di controllo e dalla modalità di installazione di PHP (modulo Apache, CGI/FastCGI, PHP-FPM).
Come trovare php.ini: metodo universale con phpinfo()
Il modo più affidabile, che funziona su qualsiasi server, è creare un file PHP di test con la funzione phpinfo().
Crea un file con un nome qualsiasi ed estensione .php (ad esempio, info.php) e inserisci al suo interno:
1 <?php phpinfo(); ?>
Carica il file nella root del sito (via FTP, file manager dell’hosting o WP-CLI) e aprilo nel browser: https://your-site.com/info.php.
Nella pagina aperta, cerca la riga Loaded Configuration File, è il percorso completo del php.ini attivo. Se PHP viene eseguito come modulo Apache, il percorso sarà mostrato nella riga Configuration File (php.ini) Path, in questo caso il file stesso potrebbe non esistere e va creato manualmente.
Dopo la verifica, cancella subito info.php, perché espone dettagli di configurazione del server, il che non è sicuro.
Dove si trova php.ini in WAMP
In WAMP (pacchetto Windows: Apache + MySQL + PHP), il percorso di php.ini è disponibile direttamente dalla barra delle applicazioni.
Clicca con il tasto destro sull’icona di WAMP, passa su PHP e seleziona php.ini, il file si aprirà in un editor di testo. Se il pacchetto ha più versioni di PHP, assicurati di aver selezionato quella su cui gira il sito (visibile nella barra: WAMP → PHP → Versione).
Percorso alternativo dal menu di WAMP: clic sinistro sull’icona → PHP → php.ini. Il file risiede fisicamente in C:\wamp64\bin\php\phpX.Y.Z\php.ini (o C:\wamp\bin\... per le versioni precedenti).
Dove si trova php.ini in XAMPP

In XAMPP su Windows e Linux, il percorso di php.ini si ottiene dal pannello di controllo. Apri il Pannello di controllo di XAMPP e clicca sul pulsante Config nella riga del modulo Apache. Nel menu a discesa, seleziona PHP (php.ini), il file si aprirà nell’editor.
Se il pulsante Config non c’è (vecchia versione di XAMPP), vai direttamente a: C:\xampp\php\php.ini su Windows o /opt/lampp/etc/php.ini su Linux.
Dopo le modifiche, riavvia Apache con il pulsante Stop → Start nel pannello di controllo.
Dove si trova php.ini in Linux (VPS / dedicato)
Su un server Linux senza pannello di controllo, php.ini si trova con un solo comando da terminale:
1 php -i | grep "Loaded Configuration File"
L’output sarà qualcosa del tipo:
1 Loaded Configuration File => /etc/php/8.2/cli/php.ini
Sfumatura importante: PHP per riga di comando (CLI) e per server web (Apache/Nginx) usa spesso php.ini diversi. Il comando sopra mostra il percorso per la versione CLI. Per trovare il percorso per il server web, crea info.php con il metodo della sezione precedente e aprilo nel browser, oppure esegui:
1 ls /etc/php/*/apache2/php.ini 2 ls /etc/php/*/fpm/php.ini
I percorsi tipici dipendono dalla versione PHP e dal server web:
- Apache:
/etc/php/8.2/apache2/php.ini - PHP-FPM (Nginx):
/etc/php/8.2/fpm/php.ini - Percorso generico (se PHP è compilato manualmente):
/usr/local/lib/php.ini
Dopo le modifiche, riavvia il server web: sudo systemctl restart apache2 o sudo systemctl restart php8.2-fpm.
Dove si trova php.ini in cPanel e altri pannelli di hosting

Sugli hosting condivisi con cPanel, il file php.ini di solito si trova nella root del sito, public_html. Per vederlo:
- Accedi a cPanel e apri File Manager
- Vai alla cartella
public_html - Cerca
php.ininell'elenco dei file

Se il file non esiste, crealo con il pulsante + File. Scrivi le direttive necessarie e salva. L'host applicherà le impostazioni nel giro di pochi minuti.
Sugli host moderni, MultiPHP Manager (cPanel) o Select PHP Version sono sempre più comuni: permettono di modificare php.ini tramite interfaccia web senza entrare nel file manager. Se il tuo pannello supporta uno strumento del genere, usalo: meno rischio di errori di sintassi.
Caso a parte: .user.ini. Sugli host con PHP-FPM (FastCGI), php.ini nella root del sito potrebbe essere ignorato; al suo posto si crea un file .user.ini con le stesse direttive. Controlla la documentazione dell'host per sapere quale file usare.
Impostazioni php.ini consigliate per WordPress (aggiornate al 2026)
I valori "predefiniti" di base in php.ini non cambiano da decenni e sono pensati per script semplici, non per CMS moderni. WordPress con i plugin attuali richiede limiti significativamente più alti. Di seguito i valori consigliati, testati sul campo.
Direttive principali
Direttiva | Minimo | Consigliato | Perché |
|---|---|---|---|
| 256M | 512M | Memoria per pagina; Gutenberg, WooCommerce, Elementor consumano facilmente 128+ MB |
| 60 | 300 | Secondi per script; import demo, generazione thumbnail, backup |
| 64M | 128M | Dimensione file caricati; temi e plugin in ZIP spesso pesano 20-50 MB |
| 64M | 128M | Dimensione totale richiesta POST; deve essere ≥ |
| 2000 | 4000 | Numero di variabili POST; influisce direttamente sul salvataggio dei menu (50+ voci = troncamento) |
| 60 | 300 | Secondi per l'analisi dei dati in input; |
1 memory_limit = 512M 2 max_execution_time = 300 3 upload_max_filesize = 128M 4 post_max_size = 128M 5 max_input_vars = 4000 6 max_input_time = 300 7 file_uploads = On
La direttiva safe_mode è stata rimossa da PHP a partire dalla versione 5.4, non aggiungerla alla configurazione. Se vedi questa riga in un vecchio php.ini, cancellala senza esitazione.
Caching (opcache)
Per i siti in produzione, opcache è obbligatorio: offre un boost di velocità di 2-3x memorizzando nella cache il bytecode compilato:
1 opcache.enable = 1 2 opcache.memory_consumption = 256 3 opcache.max_accelerated_files = 10000 4 opcache.revalidate_freq = 2 5 opcache.validate_timestamps = 1
Log degli errori
Su un sito live, la visualizzazione degli errori a schermo deve essere disattivata, ma il logging deve essere attivo:
1 display_errors = Off 2 log_errors = On 3 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
Metodi alternativi:.htaccess e wp-config.php
L'accesso a php.ini non è sempre disponibile. Su alcuni host, esistono delle soluzioni alternative.
Via.htaccess (Apache + mod_php)
Aggiungi a .htaccess nella root del sito:
1 php_value memory_limit 512M 2 php_value upload_max_filesize 128M 3 php_value post_max_size 128M 4 php_value max_execution_time 300
Questo funzionerà solo se PHP viene eseguito come modulo Apache (mod_php). Con PHP-FPM, le direttive php_value causeranno un errore 500; in questo caso usa .user.ini.
Via wp-config.php
Aggiungi prima della riga /* That's all, stop editing! */:
1 define('WP_MEMORY_LIMIT', '512M'); 2 define('WP_MAX_MEMORY_LIMIT', '512M');
WP_MEMORY_LIMIT imposta il limite per il frontend, WP_MAX_MEMORY_LIMIT per l'admin. Questo non sostituisce php.ini, ma spesso risolve l'errore "Allowed memory size exhausted" proprio quando l'accesso alla configurazione del server è limitato.
Video: trovare e modificare php.ini nella pratica
Breve video con dimostrazione visiva di tutti i metodi descritti, da phpinfo() al MultiPHP Manager in cPanel:
⁉️🤔 Domande frequenti
Perché non è cambiato nulla dopo aver modificato php.ini?
Il processo PHP non è stato riavviato. Riavvia Apache (
systemctl restart apache2o tramite pulsante nel pannello), PHP-FPM (systemctl restart phpX.Y-fpm), oppure attendi il riavvio automatico su hosting condiviso (di solito 2-5 minuti). Verifica di stare modificando esattamente ilphp.iniindicato daphpinfo()nella riga Loaded Configuration File (un server può averne diversi).
Dopo le modifiche, controlla sempre il limite effettivo tramite
phpinfo(): l'host potrebbe sovrascrivere alcune direttive con impostazioni globali. Se il valore non è cambiato, crea un.user.ininella root del sito (per PHP-FPM) oppure contatta il supporto.
Di quale memory_limit ha davvero bisogno WordPress nel 2026?
256M: minimo di sicurezza per un sito tipico con 10-15 plugin. Se è installato un page builder (Elementor, Bricks, Breakdance), WooCommerce o un plugin di caching complesso, imposta 512M. Anche i siti su Gutenberg con molti blocchi e pattern tendono verso i 512M. 128M, raccomandato nelle vecchie guide, non è più sufficiente per WordPress moderno: il solo core con un tema Full Site Editing può raggiungere questo limite.
Eccezione: hosting condiviso economico con un tetto rigido. Se l'host non consente di alzare memory_limit oltre 128M, valuta di cambiare piano o fornitore: un sito con questo limite andrà in crash a ogni altro aggiornamento.
Cosa è più importante: modificare php.ini o wp-config.php?
php.iniagisce a livello di sistema,wp-config.phpa livello applicativo. Se hai accesso aphp.ini, modifica quello: i limiti si applicheranno globalmente e non verranno resettati dagli aggiornamenti del core. Usawp-config.phpcome alternativa quando l'host ha bloccatophp.ini.WP_MEMORY_LIMITinwp-config.phpsovrascrivememory_limitdaphp.iniper WordPress, ma non influisce sumax_execution_time,upload_max_filesizee altre direttive: quelle vanno modificate via.htaccesso.user.ini.



