Come installare WordPress automaticamente: il nostro script

Abbiamo messo a punto uno script che permette di installare WordPress automaticamente su un server Ubuntu Linux: come funziona e perché usarlo.

Volete evitare di dipendere da un singolo fornitore per l’installazione e l’aggiornamento di WordPress? Allo stesso tempo, però, vi spaventa l’idea di dover gestire da soli un server cloud con una o più istanze di WordPress, una per ciascun sito Web gestito? Nel nostro articolo vi sveliamo come installare WordPress in automatico e senza fatica.

Per semplificare le cose e riflettere uno dei setup più comuni, proponiamo una configurazione basata su Ubuntu e Apache. Automatizzare e velocizzare l’installazione di WordPress su una macchina Ubuntu Linux e configurare uno o più siti HTTPS, può essere effettuato ricorrendo a un ampio ventaglio di strumenti e tecniche. Proponiamo di seguito una guida passo passo per raggiungere l’obiettivo utilizzando un approccio basato su script e strumenti di automazione.

Preparare l’ambiente per installare WordPress in automatico

Come accennato in precedenza, partiamo con un server Ubuntu che deve essere già nella disponibilità dell’utente. La macchina in questione può essere un server cloud, un VPS, un server dedicato. Essenziale è poter accedervi tramite shell SSH e poter quindi impartire tutti i comandi necessari.

Per predisporre l’ambiente, si possono impartire i comandi seguenti. In primis, si aggiorna il sistema in uso per poi installare i pacchetti Apache, MySQL e PHP:

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mysql-server php php-mysql libapache2-mod-php -y

Durante l’installazione di MySQL, è richiesta l’impostazione di una password per l’utente root di MySQL: assicurarsi che sia sufficientemente lunga e complessa.

È quindi possibile passare all’installazione di Certbot, il componente che si occupa di gestire la generazione e il successivo rinnovo di un certificato digitale gratuito attraverso il servizio Let’s Encrypt. Grazie a Certbot si può fare in modo che i propri siti Web utilizzino il protocollo HTTPS per scambiare dati con i dispositivi connessi:

sudo apt install certbot python3-certbot-apache -y

Supponendo di utilizzare il firewall ufw, si possono impartire i seguenti comandi per aprire in ingresso le porte TCP/80 e TCP/443, essenziali per le comunicazioni HTTP e HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

Il nome di dominio deve essere impostato a livello di server DNS

Affinché Certbot funzioni correttamente e Let’s Encrypt generi un certificato digitale, il nome di dominio deve essere pubblicamente raggiungibile. Anche il plugin Starter Templates, che presentiamo più avanti, necessita di un dominio correttamente configurato a livello di record DNS.

Assicurarsi, quindi, di aver impostato correttamente il resolver autoritativo impostando i record A/AAAA in maniera corretta.

Il comando dig +short seguito dal nome di dominio (da impartire da terminale Linux), deve restituire l’indirizzo IP pubblico del server Ubuntu che si sta configurando.

Download e configurazione di WordPress

A questo punto, è tutto pronto per scaricare WordPress e impostarne il corretto funzionamento. Abbiamo creato per voi il seguente script per automatizzare l’installazione del CMS.

Qualora voleste provarlo, vi suggeriamo di procedere con la massima cautela utilizzando un server di test e non certo una macchina utilizzata in produzione.

#!/bin/bash

# Variabili
DOMAIN=$1
DBNAME=${DOMAIN//./_}_wp
DBUSER=${DOMAIN//./_}_user
ROOTPASS=$2
DBPASS=$3

# Rimozione oggetti gia' presenti sul sistema
rm -r wordpress
rm latest.tar*
rm -r /var/www/$DOMAIN/

# Creazione cartella sito e copia file WordPress
mkdir /var/www/$DOMAIN
wget https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
sudo cp -R wordpress/* /var/www/$DOMAIN/
sudo chown -R www-data:www-data /var/www/$DOMAIN/

# Impostazione VirtualHost
CONFIG_FILE="/etc/apache2/sites-available/$DOMAIN.conf"

echo "<VirtualHost *:80>
    ServerName $DOMAIN
    DocumentRoot /var/www/$DOMAIN

    <Directory /var/www/$DOMAIN>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog \${APACHE_LOG_DIR}/error.log
    CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost>" > $CONFIG_FILE

# Creazione database
mysql -u root -p$ROOTPASS -e "
DROP DATABASE IF EXISTS $DBNAME;
DROP USER IF EXISTS '$DBUSER'@'localhost';
CREATE DATABASE $DBNAME;
CREATE USER '$DBUSER'@'localhost' IDENTIFIED BY '$DBPASS';
GRANT ALL PRIVILEGES ON $DBNAME.* TO '$DBUSER'@'localhost';
FLUSH PRIVILEGES;"

# Configurazione di Apache
sudo a2ensite $DOMAIN.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

# Richiesta certificato SSL
sudo certbot --apache -d $DOMAIN

Con il comando nano setup_wordpress.sh, si può creare lo script e incollarvi le istruzioni riportate in precedenza. Lo script deve essere salvato premendo dapprima CTRL+O quindi CTRL+X per uscire dall’editor di testo nano. Infine, il comando seguente permette di rendere eseguibile lo script:

chmod +x setup_wordpress.sh

Tra i primi comandi (sezione “Rimozione oggetti gia’ presenti sul sistema“), lo script provvede ad eliminare alcuni file eventualmente già presenti sulla macchina. Tra questi c’è anche la cartella /var/www/ corrispondente al nome di dominio in corso di configurazione. Procedere quindi a un backup dei dati prima di effettuare qualunque operazione.

Come avviare lo script di configurazione WordPress

Lo script presentato al paragrafo precedente si occupa di creare una sottocartella all’interno del percorso /var/www/ salvandovi tutto il contenuto dell’ultima versione di WordPress disponibile.

La procedura provvede inoltre a impostare il file VirtualHost per il nome di dominio indicato nonché a configurare un database e un nome utente all’interno di MySQL.

Al database MySQL è automaticamente assegnato il nome NOMEDOMINIO_wp mentre all’utente NOMEDOMINIO_user.

Come ultimo passaggio, lo script richiede anche un certificato TLS a Let’s Encrypt, impostato per disporre l’utilizzo del protocollo HTTPS.

Per eseguire lo script, è necessario ricorrere alla seguente sintassi:

./setup_wordpress.sh PASSWORD_ROOT_MYSQL PASSWORD_UTENTE_MYSQL

Al posto di PASSWORD_ROOT_MYSQL va indicata la password dell’utente root MySQL, impostata in precedenza. La stringa PASSWORD_UTENTE_MYSQL va invece sostituita con la password (da scegliere in maniera che sia lunga e sufficientemente complessa) da attribuire all’utente NOMEDOMINIO_user. Non usare caratteri speciali come $ e ! nella password in questa fase.

Iniziare a usare WordPress

A questo punto, è possibile digitare il nome di dominio nella barra degli indirizzi del browser per avviare la configurazione di WordPress. Dopo aver fatto clic su Iniziamo, si devono indicare Nome del database (NOMEDOMINIO_wp), Nome utente (NOMEDOMINIO_user) e Password (dell’utente NOMEDOMINIO_user).

Configurazione WordPress locale

In corrispondenza dei campi Host del databasePrefisso tabella, si possono lasciare – rispettivamente – localhost e wp_.

Il passaggio seguente consiste nell’impostazione dell’account amministratore per l’istanza di WordPress appena configurata.

Come scegliere un tema WordPress efficace e semplificare la personalizzazione del sito

Per personalizzare WordPress e impostare un tema in linea con le finalità del sito e gli argomenti trattati, si può cliccare su Plugin nella colonna di sinistra quindi sul pulsante Aggiungi un nuovo plugin in alto.

Nella casella di ricerca Cerca un plugin, suggeriamo di scrivere Starter quindi fare clic su Installa ora nel riquadro Starter Templates — Elementor, WordPress & Beaver Builder Templates.

Starter Templates per WordPress è una collezione di modelli di siti utilizzabili per avviare rapidamente la creazione di qualsiasi progetto. Questi template sono progettati per offrire una base solida e facilmente personalizzabile. Ne abbiamo parlato nell’articolo su come creare un sito WordPress per l’azienda: potete fare riferimento anche alle indicazioni condivise a suo tempo.

Starter Templates WordPress

Prima di cliccare su Attiva, suggeriamo di tornare alla riga di comando di Ubuntu quindi impartire i seguenti comandi:

sudo apt install php-xmlreader -y

sudo sed -i 's/;extension=curl/extension=curl/' /etc/php/8.1/apache2/php.ini

sudo apt install php-gd -y
systemctl reload apache2

Diamo per scontata la presenza di PHP 8.1 sul sistema in uso. Nel caso in cui si utilizzasse una differente versione di PHP, è necessario operare le opportune sostituzioni.

Maggiori informazioni sono disponibili qui e in questa pagina.

In pochi minuti avrete così a disposizione un sito WordPress perfettamente funzionante e liberamente adattabile alle proprie esigenze. Con un clic su Aspetto, Personalizza e su Pagine, Tutte le pagine, è possibile modificare la struttura di ogni singolo elemento che compone il sito WordPress utilizzando un approccio completamente visuale.

Ti consigliamo anche

Link copiato negli appunti