WP CLI è un’interfaccia a riga di comando che permette di installare, configurare e mantenere il proprio WordPress utilizzando soltanto il terminale.
Creato da uno degli sviluppatori più attivi nel panorama WordPress, Scribu, questa applicazione è considerata un elemento fondamentale di questo CMS tanto da ospitare la sua documentazione su WordPress.org.
Anche se utilizzare la riga di comando può sembrare molto geek, con questo articolo spero di farti cambiare idea e mostrarti quanto può essere utile il terminale utilizzando (anche) questo comando.
Lavorando con WordPress è probabile che hai già provato strumenti disponibili da riga di comando, come GIT o SVN che ti aiutano nella gestione delle diverse versioni del tuo codice.
Se non è così nessun problema, sono qua proprio per aiutarti a muovere i primi passi ?
Installare WP CLI richiede la possibilità di utilizzare un terminale, in fin dei conti è essenziale anche per il suo utilizzo. Se usi Mac o Linux lo trovi già installato e probabilmente lo avrai già utilizzato. Per Windows il discorso è leggermente diverso.
Però lavorare con un terminale significa anche poter usre WP CLI direttamente sul tuo server online aprendo una connessione SSH e lanciare i comandi che troverai in questa lezione.
Conoscere SSH è molto utile
Se non conosci le basi delle connessioni SSH, ti conviene andare a leggere qualcosa a riguardo, una semplice lettura dovrebbe essere più che sufficiente perché, se ci sono riuscito io, sono sicuro che anche tu sarai in grado di connetterti al tuo server online tramite questo protocollo
Non perdiamoci troppo in chiacchiere quindi ed entriamo subito nel vivo dell’articolo descrivendo il primo passaggio fondamentale: installare questa applicazione nel tuo sistema operativo.
Installiamo WP CLI nell’ambiente di sviluppo
Una volta aperto il tuo terminale, installare questo strumento è veramente semplice, tutto quello che devi fare è digitare la seguente riga di codice:
$ curl -O http://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Se non hai ricevuto alcun messaggio di errore, congratulazioni hai appena installato WP CLI!
Nota a margine per MAMP e strumenti simili
Se non è la prima volta che leggi uno dei miei articoli, dovresti sapere che nel tempo ho utilizzato anche io MAMP.
Il suo utilizzo mi ha provocato diverse volte qualche rogna ma trovo che questa applicazione sia veramente comoda da utilizzare e può essere perdonata se, per applicare qualche impostazione avanzata, è necessaria qualche modifica.
Oggi uso strumenti diversi
Al giorno d’oggi mi trovo ad usare molto più volentieri soluzioni integrate con Docker mentre guardo male alle soluzioni con GUI come il vecchio MAMP e il più recente Local by FlyWheel.
Il problema principale risiede nel fatto che il nostro MAMP non installa il linguaggio PHP nella posizione di default, anzi, tutti i programmi necessari alla gestione di un server web sono presenti all’interno della cartella dell’applicazione stessa.
Per fare in modo che WP CLI venga a conoscenza di queste modifiche al nostro ambiente di sviluppo è necessario aggiungere la posizione dell’eseguibile PHP all’interno del profilo del nostro terminale, tendenzialmente il file si trova all’interno della tua cartella utente (la tua home per capirci) e prende il nome di .bash_profile
o .bashrc
in base alla configurazione del tuo sistema operativo.
Aperto questo file con qualsiasi editor di testo ecco che cosa devi inserire al suo interno:
export WP_CLI_PHP=/Applications/MAMP/.../bin/php
Mi raccomando su una cosa in particolare, sostituisci i tre punti con il percorso corretto all’eseguibile della versione PHP che stai utilizzando altrimenti WP CLI non sarà in grado di funzionare correttamente.
Fatta questa modifica quello che resta da fare è forzare il terminare a caricare nuovamente questo file dando il seguente comando:
$ source ~/.bash_profile
Una cosa che ho notato nei miei esperimenti è che talvolta WP CLI non è in grado di comunicare direttamente con il server MySQL che MAMP porta con se, per risolvere questo problema ti consiglio di aprire nuovamente il file .bash_profile
( o .bashrc
) ed aggiungere quanto segue:
export PATH=$PATH:/Applications/MAMP/Library/bin
In questo modo stai indicando a WP CLI tutti gli eseguibili che sono presenti all’interno di MAMP e nel 99% dei casi hai risolto qualsiasi problema di incompatibilità.
Primi passi con WP CLI
A questo punto presumo che tu abbia tra le mani un terminale dal quale puoi lanciare i comandi che vedremo in questo articolo.
Per seguire passo passo gli esempi che faremo in questo articolo ti consiglio di creare una nuova cartella vuota all’interno del tuo ambiente di sviluppo locale (potrai anche lavorare con installazioni online una volta connesso via SSH ma per il momento facciamo le cose semplici).
Quello che devi fare adesso è recarti all’interno della cartella appena creata ed eseguire il seguente comando:
$ wp --info
Se tutto è andato a buon fine questo vuol dire che hai installato correttamente WP CLI e che avrai ricevuto un messaggio simile a questo:
PHP binary: /Applications/MAMP/bin/php/php5.3.27/bin/php PHP version: 5.3.27 php.ini used: /Applications/MAMP/bin/php/php5.3.27/conf/php.ini WP-CLI root: /Users/andreabarghigiani/.wp-cli/vendor/wp-cli/wp-cli WP-CLI config: WP-CLI version: 0.12.1
Come puoi vedere, la risposta che ci ha fornito WP CLI è semplicemente una lista di file utilizzati dal programma stesso.
Ti consiglio di controllare nuovamente che i percorsi al binario PHP e al suo file di configurazione siano corretti perché il divertimento sta per iniziare!
Non posso ricordarmi tutto!
Questa è sicuramente una delle scuse più comuni quando si parla di modificare le nostre abitudini passando da un mondo pieno di interfacce grafiche ad uno meno vivace.
Lo dico perché io stesso credevo che avere un’icona da raggiungere fosse più pratico e volece rispetto a ricordarsi decine di comandi a memoria.
Per fortuna nostra, lavorare con WP CLI non significa dover avere sempre a mente i nomi dei comandi che ci servono ma piuttosto sapere dove cercarli.
Ed il compito è veramente semplice dato che per ottenere la lista di questi basta digitare nel terminale il comando principale: wp
.
Una volta inserite queste due lettere e premuto il pulsante Invio ti verranno presentate una serie di sotto-comandi che potrai utilizzare assieme a questo. I più interessanti, nonché quelli che andremo a vedere in questo articolo, sono:
-
core
– con questo comando è possibile scaricare, installare, aggiornare qualsiasi versione di WordPress che vuoi utilizzare -
plugin
– una serie di utili strumenti che ti permetteranno di installare, aggiornare, attivare, disattivare e disinstallare qualsiasi plugin WordPress theme
– come sopra ma per i temidb
,export
eimport
– questi sono singoli sotto-comandi ma ho preferito raggrupparli in un unico gruppo dato che svolgono tutti operazioni con il tuo database
Abbiamo lasciato da parte molti comandi interessanti, anche perché questi possono aumentare in base ai plugin installati, ma puoi capire da solo che ti sarà possibile gestire il tuo WordPress senza neanche dover entrare nella bacheca, in questo modo potremmo salvare minuti preziosi che potrai dedicare ad altro.
Andiamo adesso a conoscere i comandi più comuni.
Installa WordPress dalla riga di comando
In questa sezione ti mostro come sia possibile scaricare, configurare e installare il nostro WordPress investendo soltanto una manciata di secondi e senza mai staccare le mani dalla tastiera.
Ti sembra troppo bello per essere vero?
Tranquillo non stai sognando ma è tutto vero!
Iniziamo la nostra installazione scaricando il nostro WordPress.
Come scaricare WordPress con WP CLI
Torniamo all’interno della cartella appena creata e a questo punto non ti resta altro che lanciare il seguente comando e lasciare che sia WP CLI a preoccuparsi di scaricare e scompattare l’ultima versione WordPress:
$ wp core download
Tre semplici parole digitate all’interno di un terminale che ti permetteranno di:
- evitare di aprire il sito wordpress.org per scaricare l’ultima versione WordPress in formato
.zip
; - estrarre il contenuto del file e copiarlo all’interno della cartella presente nel nostro ambiente di sviluppo;
- cancellare l’archivio
.zip
e dirigersi con il proprio browser alla schermata di installazione WordPress.
Con un semplice comando trovi già tutto pronto all’interno della cartella nella quale stai lavorando, vediamo adesso come procedere per l’installazione…
Prima di installare dobbiamo configurare
Come ci abitua anche l’installazione guidata di WordPress, prima di poter installare questa piattaforma dobbiamo fornire le informazioni necessarie alla corretta configurazione che, in poche parole, si traduce nell’indicare a WordPress quale database può utilizzare e le sue credenziali di accesso.
Chiedi pure
In questo articolo do per scontato che tu sappia come creare un database ma se dovessi incontrare qualche problema, non esitare a contattarmi!
Per configurare la tua nuova installazione WordPress puoi lasciare che sia WP CLI a generare per te il file wp-config.php
con il seguente comando:
$ wp core config
Come puoi notare, ancora una volta, il comando wp core
dimostra la sua utilità ma, se hai provato ad eseguire questo comando, molto probabilmente hai ricevuto un errore.
Questo errore non è lanciato da una tua mancanza ma piuttosto perché non ti ho ancora detto che questo comando accetta diversi parametri, i più utili saranno:
--dbname
– che specifica il nome del database che si vuole utilizzare;--dbuser
– il nome utente che avrà accesso al database;--dbpass
– la sua password;--dbhost
– la URL che permette di raggiungere il database (da specificare soltanto se diversa dalla URL del proprio sito);--dbprefix
– il prefisso della tabella che desideri utilizzare (anche in questo caso da specificare se desideri rendere difficile agli hacker di capire quale tabelle usa il tuo WordPress).
Quindi, nella sua forma minima, il precedente comando assumerà il seguente aspetto:
$ wp core config --name=nomedb --dbuser=adminmysql --dbpass=pswadminmysql
Forse un po’ più complicato del primo comando che abbiamo visto, ma è proprio qua che viene il bello! Per ciascun comando che vedi sarà possibile andare a creare uno script che ti permetterà di rendere il tutto molto più semplice!
Per creare uno script di questo genere basta creare un qualsiasi file con estensione .sh
e, giusto per farti un esempio, ecco cosa dovresti inserire al suo interno per creare qualcosa di più umano:
#!/bin/bash printf "Qual e' il nome del database da usare?" read DBNAME printf "Il nome utente che puo' accedervi?" read DBUSER printf "La sua password?" read DBPASS wp core config --dbname=$DBNAME --dbuser=$DBUSER --dbpass=$DBPASS
Ecco fatto, adesso quando eseguirai questo script il terminale ti chiederà i dati necessari per permettere a WordPress di essere installato senza neanche doverti ricordare come si dichiarano i singoli parametri.
Finalmente possiamo installare
Concludiamo quindi questo articolo con il comando che permetterà di installare un nuovo fiammante WordPress nel giro di pochi secondi, ti senti di provare a dire quale comando bisogna usare? No?!? Dai nessun problema, ecco qua sotto il comando necessario:
$ wp core install
Ancora una volta vediamo che il comando wp core
è veramente molto utile in questa fase dello sviluppo ma se hai provato ad eseguire questo comando il terminale ti avrà restituito un errore e, ancora una volta, il motivo risiede nel fatto che non ti ho presentato i parametri che questo comando richiede:
-
--url
– che gli permette di identificare la URL utilizzata per questa installazione di WordPress; --title
– ovviamente il titolo del nostro nuovo CMS;--admin_name
– il nome dell’account di amministrazione;--admin_email
– la mail…--admin_password
– e la sua password.
Insomma, non ci chiede altro che le informazioni necessarie per terminare l’installazione e fornirci un account con il quale gestire il nuovo sistema.
$ wp core install --url=dominio.it --title=Esempio --admin_user=super --admin_password=strongpassword --admin_email=info@dominio.it
Ovviamente, come mostrato prima per la configurazione, potresti creare un nuovo script che ti permette di inserire queste informazioni senza la necessità di ricordarti uno per uno ogni singolo parametro oppure potresti creare un unico script che ti permetterà di eseguire un’installazione WordPress nel giro di pochissimi secondi!
Altre operazioni interessanti con WP CLI
Riconosco che al momento sembra non aver fatto niente di speciale perché tutto quello che è stato fatto è stato installare WordPress con un nuovo strumento ed ecco perché ho deciso di aggiungere questa sezione.
Al momento avere a disposizione WP CLI non sembra un grande vantaggio, bisogna scrivere lunghi comandi per fare operazioni comuni e banali.
Però WP CLI è molto più di questo, anzi è uno strumento che ti permetterà di gestire completamente la tua installazione WordPress senza neanche dover accedere al pannello di amministrazione.
Ecco alcuni casi d’uso che ritengo incredibilmente utili.
Aggiornamento temi e plugin
WordPress offre degli strumenti potentissimi per aggiornare temi e plugin ma si tratta sempre di strumenti all’interno della sua bacheca e questo significa dover raggiugnere il sito e fare login.
Connettendoti invece al tuo server online attraverso SSH avrai la possibilità di lanciare i seguenti comandi risparmiando un sacco di tempo.
Per aggiornare in un colpo solo tutti i plugin devi inserire:
$ wp plugin update --all
Mentre per i temi il comando è molto simile:
$ wp theme update --all
Con due singoli comandi sei stato in grado di aggiornare temi e plugin, cosa simile potrai farla con per il core WordPress con il comando wp core update
ma forse la cosa ancora più interessante è che questi comandi ci permettono di inserire ulteriori opzioni.
Per esempio, l’opzione --all
è una scorciatia che ci permette di aggiornare tutti i pacchetti interessati ma potremmo anche escluderne alcuni (con --exclude
) oppure installarne di ringoli rimuovendo --all
e scrivendo il nome di ciò che vogliamo installare.
Creiamo un utente
Anche creare un utente è relativamente semplice quando usiamo il terminale, tutto quello che serve è lanciare il seguente comando:
$ wp user create --prompt
Se vai a vedere la pagina di documentazione di questo comando, anche questo ha molte opzioni che possiamo utilizzare ma in questo esempio ho scelto un approccio diverso.
In questo esempio voglio mostrarti come fare in modo che sia il terminale a chiedere le informazioni necessarie ed è semplice quanto scrivere --prompt
.
A questo punto il terminale procederà con il chiederti il nome, la mail, la password e tutte le altre informazioni necessarie per la creazione di un nuovo utente.
Sostituiamo del testo nel database
Diciamoci la verità, spostare un sito WordPress da un dominio a un altro non è un compito semplice. Certo, come presentato più volte in questo blog, possiamo usare un semplice script PHP per eseguire la ricerca e la sostituzione di specifiche stringhe nel nostro database.
Nel prossimo esempio faremo riferimento a dei domini ma questo comando può essere usato per sostituire qualsiasi stringa presente nel database e ti consiglio di fare un backup prima di qualsiasi operazione.
$ wp search-replace http://0.0.0.0:8080 https://skillsandmore.org
Il codice sopra ti mostra come usare il comando search-replace
per sostituire il dominio del mio ambiente di sviluppo con quello che sarà il domino online.
Fai attenzione perché con questo comando sovrascrivi le informazioni contenute nel database dell’installazione WordPress contenuta nella cartella dalla quale lanci il comando.
Se invece vuoi creare un file .sql
da importare successivamente nel server online dovrai utilizzare l’opzione --export
per creare un nuovo database contenente la sostituzione effettuata.
$ wp search-replace http://0.0.0.0:8080 https://skillsandmore.org --export=db-locale.sql
Una volta eseguito quest’ultimo comando troverai il file db-locale.sql
nella cartella dalla quale lo hai lanciato, pronto da importare nel server online con phpMyAdmin o (perché no) direttamente con WP CLI.
Conclusioni
So che mancano ancora diversi comandi all’appello ma non vorrei portare troppo avanti questo articolo introduttivo.
Ora che hai letto l’articolo ti confesso che mi piacerebbe conoscere la tua opinione, hai provato ad utilizzare il terminale? Come ti ci trovi?
Scherzi a parte, io mi sono innamorato di questo strumento e non riesco più a pensare alla gestione di WordPress senza avere questo installato all’interno dei miei server.
Ti consiglio vivamente di prenderci la mano e usare questo strumento il più frequentemente possibile perché velocizza incredibilmente la gestione di questa piattaforma.
Luigi dice
umm altro articolo che sto rileggendo per focalizzare i punti centrali:) una domanda non è molto che uso” mamp pro” ma da quanto vedo ti consente di utilizzare diverse versioni di php, quindi mi chiedevo in che modo vada modificato il .bash_profile?
Aggiungendo export WP_CLI_PHP=/Applications/MAMP/…/bin/php per ciascuna versione di php?
Utilizzando mamp pro devo cercare la cartella bin in mamp pro?
Andrea Barghigiani dice
Ciao Luigi,
praticamente devi sostituire i puntini tra MAMP/ e bin/ con la cartella che include la versione di PHP che stai utilizzando (la vedi nelle imopstazioni di MAMP).
Per quanto riguarda la versione PRO purtroppo non l’ho mai provata ma a Settembre uscirà un articolo che spiegherà come utilizzare i Virtual Host anche cn la versione free 😉
A presto, Andrea