Se gestisci più siti WordPress, sai che cliccare “Aggiorna” su decine di plugin uno per uno è una perdita di tempo. E se ti dicessimo che puoi fare tutto da terminale, in pochi secondi, con un comando? WP-CLI è lo strumento che trasforma la gestione di WordPress in operazioni da riga di comando: deploy, aggiornamenti, backup, migrazioni. Noi, di Meteora Web, lo usiamo ogni giorno per i progetti dei nostri clienti. Veniamo dalla contabilità e dalla programmazione: ogni minuto risparmiato è un minuto che possiamo dedicare a ciò che genera fatturato. In questa guida operativa vediamo come installare WP-CLI, i comandi essenziali e come integrarlo in flussi di automazione per la tua PMI.
Come installare WP-CLI su un server Linux?
WP-CLI è un eseguibile PHP distribuito come file PHAR (PHP Archive). L’installazione su un server Linux (o su un ambiente di sviluppo) è semplice e richiede pochi passaggi.
Installazione con wget o curl
Ecco i comandi da eseguire via SSH:
# Scarica il PHAR ufficiale
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# Verifica che funzioni
php wp-cli.phar --info
# Rendilo eseguibile e spostalo in /usr/local/bin
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
# Test finale
wp --version
Errore comune: dimenticare di rendere eseguibile il file. Senza `chmod +x`, il comando `wp` darà “Permission denied”.
Sponsored Protocol
Verifica dei prerequisiti
WP-CLI richiede PHP 5.6 o superiore (raccomandato 7.4+) e le estensioni `json`, `phar`, `curl` e `mysql`. Controlla con:
php -m | grep -E 'json|phar|curl|mysql'
Se manca qualcosa, installala con il gestore pacchetti del tuo OS (es. `sudo apt install php-json` su Debian/Ubuntu).
Quali comandi WP-CLI usare per il deploy automatico?
Il deploy di un sito WordPress con WP-CLI può essere interamente automatizzato. Ecco i comandi che usiamo quotidianamente nei nostri flussi CI/CD.
Aggiornamento del core, dei plugin e dei temi
# Aggiorna WordPress core
wp core update
# Aggiorna tutti i plugin
wp plugin update --all
# Aggiorna tutti i temi
wp theme update --all
Consiglio operativo: esegui sempre un backup del database prima degli aggiornamenti. Con WP-CLI puoi farlo in un colpo solo:
Sponsored Protocol
wp db export backup-$(date +%Y%m%d).sql
wp core update
wp plugin update --all
wp theme update --all
Ricerca e sostituzione nel database
Quando sposti un sito da un ambiente all’altro (locale → staging → produzione), devi aggiornare gli URL. Con WP-CLI è immediato:
wp search-replace 'http://localhost' 'https://tuodominio.com' --all-tables
Attenzione: usa sempre l’opzione `--precise` se hai serialized data (tipico di WordPress) per evitare corruzione. Noi preferiamo:
wp search-replace 'http://localhost' 'https://tuodominio.com' --all-tables --precise
Esportazione e importazione del database
# Esporta
wp db export mydb.sql
# Importa (attenzione: sovrascrive il database corrente)
wp db import mydb.sql
Per duplicare un sito, combina export/import con la sostituzione url:
wp db export staging.sql
wp db import staging.sql
wp search-replace --all-tables --precise 'old.com' 'new.com'
Come gestire gli aggiornamenti di plugin e core con WP-CLI?
La gestione periodica degli aggiornamenti è fondamentale per la sicurezza. Con WP-CLI puoi schedulare tutto via cron.
Sponsored Protocol
Controllare gli aggiornamenti disponibili
# Elenca gli aggiornamenti
wp core check-update
wp plugin list --update=available
wp theme list --update=available
Aggiornare in modo selettivo
# Aggiorna un plugin specifico
wp plugin update woocommerce
# Aggiorna un tema specifico
wp theme update twentytwentyfour
Automatizzare con cron (Unix)
Aggiungi un job al crontab del server:
# Ogni lunedì alle 3:00
0 3 * * 1 cd /path/to/wp && wp core update && wp plugin update --all && wp theme update --all
Nota: assicurati che l’utente cron abbia i permessi di scrittura sulla directory di WordPress. Noi consigliamo di eseguire il comando come utente del sito (non root).
Come esportare e importare il database con WP-CLI per migrazioni?
Le migrazioni tra server o ambienti sono una delle operazioni più critiche. WP-CLI le rende sicure e veloci.
Sponsored Protocol
Esportazione con compressione
wp db export - | gzip > backup-$(date +%Y%m%d).sql.gz
Per importare un file compresso:
gunzip < backup.sql.gz | wp db import -
Migrazione completa (copia remota)
Su un server di destinazione, usa WP-CLI con connesione SSH:
ssh user@old-server 'cd /path/wp && wp db export -' | wp db import -
Questo evita di salvare file temporanei. Comodo ma attento alla larghezza di banda.
Come creare script Bash per automazione con WP-CLI?
L’automazione vera nasce combinando WP-CLI con Bash. Ecco uno script che abbiamo scritto per un cliente con 30 siti WooCommerce: aggiorna tutto, fa backup e invia notifica.
#!/bin/bash
SITI=("/var/www/sito1" "/var/www/sito2" "/var/www/sito3")
for SITO in "${SITI[@]}"; do
echo "Lavoro su $SITO"
cd "$SITO"
wp db export "backup-$(date +%Y%m%d).sql"
wp core update
wp plugin update --all
wp theme update --all
echo "Fatto $SITO"
done
Checklist per script di produzione:
- Verificare che la directory esista
- Gestire errori con `set -e`
- Loggare output su file
- Notificare via email o Slack in caso di fallimento
Noi abbiamo integrato uno script simile in un sistema di deploy continuo: ogni push su Git avvia l’aggiornamento automatico su staging e, dopo test, su produzione.
Sponsored Protocol
Cosa fare adesso
WP-CLI non è solo uno strumento da sviluppatori: è un moltiplicatore di efficienza per chiunque gestisca WordPress professionalmente. Ecco tre azioni concrete da eseguire oggi:
- Installa WP-CLI sul tuo server di sviluppo o staging seguendo i comandi sopra.
- Crea un backup automatico con un cron che esegue `wp db export` quotidianamente.
- Scrivi uno script Bash che aggiorni plugin e tema su un sito di test, per prendere confidenza.
Ricorda: un sito non è una vetrina da ammirare, è uno strumento che deve vendere. Più tempo risparmi in manutenzione, più tempo dedichi a farlo crescere. Se vuoi approfondire, dai un’occhiata alla nostra Guida Pillar su WordPress Sviluppo Avanzato.
Link utile: Documentazione ufficiale WP-CLI