Come ottimizzare LocalWP su Windows: metodo operativo e configurazioni PHP/OPcache
Come ottimizzo LocalWP su Windows: metodo operativo, passo-passo
Negli ultimi mesi ho ottimizzato in modo sistematico LocalWP su Windows per rendere editor, login e area di amministrazione sensibilmente più reattivi. Di seguito condivido il mio metodo operativo: istruzioni sequenziali e snippet pronti all’uso, esattamente quelli che applico nei miei ambienti locali.
1) Impostazioni chiave di Local
1.1 Router Mode e dominio
In Local → Preferences → Advanced confronto i due Router Mode:
Localhost: in Windows è spesso più rapido e prevedibile.
Site Domains: utile se devo replicare cookie e scenari di dominio reali.
Evito TLD .local e preferisco .test (es. miosito.test) per ridurre ambiguità DNS.
Dopo ogni modifica di Router Mode o dominio: riavvio il sito e pulisco la cache DNS (vedi §2.2).
1.2 Web server e PHP
Prediligo Nginx per leggerezza; scelgo Apache solo quando servono regole .htaccess specifiche.
Mantengo PHP aggiornato all’ultima minor compatibile con il progetto.
Xdebug resta disattivato di default; lo abilito solo durante sessioni di debug (l’impatto sui tempi di risposta è notevole).
1.3 Add-on e watcher
Disattivo funzionalità non essenziali (es. Instant Reload) quando non servono, per limitare I/O e file watching.
2) Ottimizzazioni mirate su Windows
2.1 Esclusioni in Windows Defender
Inserisco tra le esclusioni:
La cartella Local Sites (es. C:\Users\NOMEUTENTE\Local Sites\)
La configurazione utente di Local
C:\Users\NOMEUTENTE\AppData\Roaming\Local\
Le cartelle temp dedicate che creo al §3
Questo riduce la latenza su file PHP/JS/CSS frequentemente modificati.
2.2 Pulizia della cache DNS
Quando cambio dominio o Router Mode, da Prompt dei comandi (Amministratore) eseguo:
ipconfig /flushdns
Piccolo intervento, spesso risolve ritardi di risoluzione.
3) Percorsi temp centralizzati per upload, sessioni e OPcache
Centralizzo i percorsi temporanei su un’unità veloce (SSD). Creo C:\wp-temp con sottocartelle dedicate a uploads tmp, sessioni e OPcache.
PowerShell (Amministratore):
4) Override php.ini per sito (compatibile con Local)
Local consente override per-sito senza toccare la globale.
In Local: Right-click sul sito → Open site folder.
Se manca, creo conf\php\php.ini.hbs.
Inserisco solo le differenze utili allo sviluppo:
Con validate_timestamps=1 e revalidate_freq=2 l’OPcache resta efficace ma rileva rapidamente i cambi di file, evitando svuotamenti manuali continui. Al termine riavvio il sito da Local.
5) Regolazioni WordPress utili in locale
Nel wp-config.php (solo ambiente locale) aggiungo:
Pulizie ricorrenti con WP-CLI (Local → tasto destro → Open Site Shell):
6) Editor e tool frontend
In VS Code riduco i watcher e escludo node_modules, vendor, uploads da ricerca/indicizzazione.
Durante lo sviluppo admin evito sourcemap pesanti se non strettamente necessari.
Mantengo pulite le build di asset per ridurre rigenerazioni inutili.
7) Checklist di diagnosi rapida
Router Mode: confronto Localhost vs Site Domains.
TLD: passo a .test e poi ipconfig /flushdns.
Xdebug: OFF finché non debuggo.
PHP/Web server: aggiorno PHP; uso Nginx quando possibile.
Defender: aggiungo esclusioni (progetto, Roaming Local, C:\wp-temp).
php.ini.hbs: imposto upload/sessioni/OPcache su C:\wp-temp.
WP: DISABLE_WP_CRON, WP_DEBUG, wp transient delete + wp db optimize.
Editor/Watcher: minimizzo il file watching e le cartelle indicizzate.
Con questi interventi ottengo in modo costante login più rapido, backend fluido e editor (Gutenberg/Elementor) più reattivi.
FAQ
Posso tenere OPcache attivo in sviluppo?
Sì. Con validate_timestamps=1 e revalidate_freq=2 resta veloce senza penalizzare l’iterazione. In caso di refactor estesi, riavvio il sito da Local.
Quando scegliere Apache al posto di Nginx?
Uso Apache solo se ho bisogno di regole .htaccess particolari o di testarne il comportamento. In tutti gli altri casi Nginx risulta più snello.
Ha senso attivare un plugin di cache in locale?
No, salvo test specifici sulla cache. In sviluppo tende a rallentare il ciclo modifica-refresh.