Gli script di shell si prestano alla perfezione all'esecuzione di operazioni ripetitive di amministrazione, permettendo di risparmiare una gran quantità di tempo nelle attività di routine. Uno script non è nient'altro che un elenco di comandi che possono essere lanciati in sequenza semplicemente richiamando il file script dal terminale.
Grazie a WP-CLI e agli script bash diventa possibile automatizzare la maggior parte delle operazioni di amministrazione del sito: backup, aggiornamento del core, dei temi e dei plugin, installazioni singole o multiple, configurazione automatica di installazioni multisite e molto altro.
Grazie all'utilizzo congiunto di WP-CLI e degli script bash è possibile automatizzare la creazione e la configurazione di installazioni complesse, dotate di un numero arbitrario di temi e plugin.
In questo capitolo si fornirà un esempio concreto di script bash in cui vengono utilizzati i comandi di WP-CLI che consentono di automatizzare l'installazione di WordPress e di diversi plugin ospitati nella directory di WordPress.org. Durante l'installazione saranno richiesti dinamicamente i dati della configurazione, in modo che lo stesso file possa essere utilizzato in più installazioni senza la necessità di modificarlo.
Uno script bash per installare e configurare WordPress con un solo comando
Per effettuare i propri test in un'installazione locale si copi e incolli il seguente codice in un file install.sh
.
# Plugin da installare
MYPLUGINS=( advanced-custom-fields custom-post-type-ui async-javascript autoptimize )
# Messaggio
echo "Installazione di WordPress in Corso"
# Input nome sito
echo "Nome del sito: "
read -e sitename
# Input nome sito
echo "URL del sito: "
read -e siteurl
# Input dati utente amministratore WordPress
echo "Nome utente admin: "
read -e user
echo "Password utente admin: "
read -e password
# Scarica WordPress
wp core download --path=$siteurl
# Cambia directory
cd $siteurl
# Configura
wp core config --dbname=$siteurl --dbuser=utente_db --dbpass=password_db --dbhost=127.0.0.1 --dbprefix=my_ --extra-php <<PHP
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
PHP
# Crea DataBase
wp db create
# Installa il core
wp core install --url=127.0.0.1/$siteurl --title="$sitename" --admin_user=$user --admin_password=$password --admin_email=email@email.org
# Elimina i plugin predefiniti
wp plugin delete --all
# Installa i plugin
wp plugin install ${MYPLUGINS[@]} --activate
# Messaggio finale
echo "Installazione del sito $sitename completata"
Una volta pronto il file install.sh
, si avii il terminale dei comandi e si digiti, dalla root del server, il seguente comando:
bash install.sh
Ecco cosa avviene:
MYPLUGINS
è un array bash i cui elementi sono costituiti dagli slug dei plugin di WordPress da installare.- Gli echo successivi inviano a video le stringhe tra doppie virgolette.
- I comandi
read -e
che seguono leggono l'input dell'utente e lo memorizzano nella variabile specificata. - Il passo successivo è il download di WordPress nella directory specificata dall'utente e memorizzata nella variabile
$siteurl
- Segue la creazione del file
wp-config.php
, la creazione del database e l'installazione di WordPress, per la quale si utilizzano i dati inseriti dall'utente. - Successivamente vengono eliminati tutti i plugin presenti di default in WordPress.
- Subito dopo vengono installati i plugin specificati all'inizio del file. In questa istruzione,
${MYPLUGINS[@]}
restituisce gli elementi dell'arrayMYPLUGINS
come parole separate. - Ad operazioni concluse, l'ultimo comando
echo
conferma l'installazione del sito.
L'immagine che segue mostra l'avvio delle operazioni di installazione.
Quest'altra immagine, infine, mostra la conclusione delle operazioni.
A questo punto sarà possibile aggiungere altri comandi allo script bash, come ad esempio i comandi per caricare contenuti di prova, per aggiungere widget al front-end del sito, per rifinire la configurazione del file wp-config.php
, per rimuovere i temi istallati e per aggiungerne altri, ecc.
Per ogni ulteriore approfondimento ai comandi di WP-CLI, si fa rinvio ai precedenti capitoli di questa guida.