back to top

Clonare un sito WordPress

Esistono diverse ragioni per cui potrebbe essere utile clonare un sito WordPress: una di esse è ad esempio l’esigenza di dover migrare un’installazione da uno spazio hosting ad un altro così come da un remoto a locale e viceversa, oppure si potrebbe predisporre di una copia completa del proprio sito su cui effettuare dei test al di fuori dell’ambiente di produzione (creando quella che tecnicamente viene chiamata “area di staging”) in cui eseguire modifiche e aggiornamenti senza influire sulla continuità di servizio e mettendosi al riparo da malfunzionamenti e comportamenti inattesi.

Le operazioni di clonazione sono sostanzialmente delle procedure di backup e ripristino in una posizione differente da quella di origine che coinvolgono il database dell’applicazione e i file che la costituiscono. In questo breve approfondimento analizzeremo due modalità differenti che permettono di portarla a termine, la prima completamente manuale, la seconda effettuabile tramite l’ausilio di un plugin.

Pubblicità

Clonazione manuale di un’istanza di WordPress

Per descrivere la clonazione manuale di un sito Web creato con WordPress terremo conto di quello che è l’ambiente di produzione di riferimento per la piattaforma: Linux.

Clonazione del database con PhpMyAdmin

Generalmente anche i Web hosting più economici mettono a disposizione un’installazione di PhpMyAdmin, interfaccia visuale per l’interazione con il DBMS MySQL, che consente di effettuare una copia del database di WordPress.

Per far questo è sufficiente lanciare l’applicazione, selezionare la base di dati che si desidera copiare per poi cliccare su “Esporta”. Verrà così visualizzato un semplice form che permette di scegliere il metodo di esportazione da utilizzare (quello “Rapido” è più che sufficiente per i nostri scopi) e il formato della copia che, per semplificare la procedura, sarà SQL.

Esportazione dati

Una volta cliccato su “Esegui” non rimane altro da fare che scegliere il percorso di destinazione del file “.sql” generato (“cp-db-wp.sql” nel caso del nostro esempio) e cliccare su “Salva”.

Fatto questo, sempre da PhpMyAdmin, è possibile scegliere il database (ad esempio “test-db”) nel quale si desidera importare i dati precedentemente estratti cliccando su “Database” per poi utilizzare il pulsante “Importa” con cui accedere alla sezione chiamata “Importazione nel server corrente in corso”. In essa è disponibile l’opzione “Cerca sul tuo computer:” che, dopo aver cliccato su “Scegli file”, permette di selezionare la copia da importare dal proprio terminale e di concludere la procedura tramite il pulsante “Esegui”.

Importazione dati

Clonazione del database da linea di comando

Le operazioni precedentemente descritte possono essere effettuate anche da linea di comando tramite un client SSH o il Terminale di Linux. In questo caso, se non è stato ancora creato il database di destinazione per i dati prelevati dalla base di dati d’origine, è possibile effettuare questo passaggio lanciando la seguente istruzione basata sul comando SQL CREATE DATABASE, dove l’argomento “-e” consente di concluderne l’esecuzione per poi arrestare il processo inizializzato:

mysql --user=nomeutente --password=password -e 'CREATE DATABASE test-db;'

Una volta creato il nuovo database è possibile utilizzarlo per la clonazione tramite l’istruzione proposta di seguito, dove mysqldump è appunto il comando di MySQL che consente di effettuare una copia fedele del database passato come argomento (“cp-db-wp”):

mysqldump --user=nomeutente --password=password cp-db-wp | mysql --user=nomeutente --password=password test-db

Migrazione dei file

Se desideriamo semplicemente migrare il nostro sito Web basato su WordPress da uno spazio hosting ad un altro, magari modificando anche il nome a dominio associato, l’opzione più immediata per trasferire i file è quella di utilizzare un classico client FTP come FileZilla.

In ogni caso Linux supporta un comando invocabile da Terminale (o più precisamente un’utility) denominato scp (secure copy) che consente qualsiasi tipo di trasferimento: da locale a remoto, da remoto a locale e tra due macchine in remoto tramite un’istruzione lanciata da una postazione locale. Quest’ultima operazione può essere effettuata ad esempio digitando l’istruzione seguente:

scp -Cpr /var/www/wp user@serverdidestinazione:/var/www/copia-di-wp

In essa vengono utilizzate nell’ordine le opzioni –C, che determina la compressione dei dati inviati, -p, che preserva le modifiche effettuate sui file, e –r, che comunica a scp di copiare ricorsivamente le directory.

Nell’esempio le directory di origine e di destinazione si trovano entrambe sul percorso “/var/www/” che è in genere quello in cui vengono salvati i file di un sito Internet in una configurazione basata sul Web engine Apache in ambiente Linux.

Si noti infine l’uso della stringa user@serverdidestinazione in cui “user” deve essere sostituito con l’utente del server di destinazione e “serverdidestinazione” con l’indirizzo IP di quest’ultimo.

Se invece l’intenzione è quella di effettuare dei test di sviluppo su modifiche o aggiornamenti prima del passaggio in produzione, la scelta migliore è probabilmente quella di replicare l’installazione del CMS in un sottodominio appositamente dedicato. A partire da un nome a dominio come per esempio “mrw.it” si può creare ad esempio il sottodominio “testwww.mrw.it.”

Dato che in questo secondo caso si opera sul medesimo server il comando di riferimento per la copia dei file non è più scp ma cp che ha una funzione molto simile ma viene impiegato per la copia interna di file e directory e può essere utilizzato in un’espressione come quella proposta di seguito:

cp -a /var/www/mrw /var/www/mrw/testwp

Nell’istruzione risulta evidente l’utilizzo di un’unica opzione, -a, che permette di effettuare l’archiviazione dei file coinvolti.

Modifica del file di configurazione e delle impostazioni

Una volta migrati i dati e i file, per completare la procedura di migrazione manuale non rimane altro che rendere la copia del sito raggiungibile dal Web a dal proprio ambiente locale di sviluppo.

Per far questo è necessario innanzitutto editare il file di configurazione di WordPress, wp-config.php, ciò con lo scopo di modificare le informazioni relative alla sezione “MySQL settings” dove si devono aggiornare i dati relativi a nome del database, nome utente, password e host con quelli della nuova istanza del CMS:

Configurazione di WordPress

Completato anche questo passaggio non rimane altro che accedere alla dashboard di WordPress e accedere alla sezione “Impostazioni generali” tramite il percorso “Impostazioni > Generali” in cui settare l’URL del nuovo indirizzo di WordPress e quella del nuovo indirizzo del sito.

Impostazioni di WordPress

Fatto questo la copia creata dovrebbe essere perfettamente funzionante.

Clonazione di WordPress tramite plugin

Esistono diversi plugin che permettono di effettuare il backup e il ripristino di un’installazione di WordPress consentendone la clonazione. Per questa trattazione è stato scelto Duplicator, una soluzione estremamente semplice da utilizzare che può essere installata come qualsiasi altra estensione del CMS.

Accediamo quindi alla dashboard del sito Web da clonare, seguiamo il percorso “Plugin > Aggiungi nuovo”, utilizziamo il motore di ricerca dei plugin digitando la keyword “Duplicator”, portiamoci sul riquadro “Duplicator – Plugin di migrazione per WordPress”, clicchiamo su “Installa adesso” e infine su “Attiva”.

Nella sidebar dell’area di amministrazione comparirà così la voce “Duplicator” che, se cliccata, consente di visualizzare il sottomenù “Pacchetti” da utilizzare per la copia di database e file.

Duplicator

Clonazione di database e file con Duplicator

I pacchetti di Duplicator non sono altro che dei backup contenenti i dati di un’installazione di WordPress. La prima fase per la creazione di un pacchetto è quella della configurazione durante la quale è possibile innanzitutto definire un nome per quest’ultimo (“20210506_bk_wp” nel nostro esempio).

Clonare il database con Duplicator

È inoltre possibile decidere se archiviare soltanto il database o se abilitare dei filtri per escludere directory, estensioni o file specifici dalla duplicazione. Nel caso in cui si voglia creare un package completo basterà non operare alcuna scelta nella sezione “Archivio”.

Impostazioni Archivio

La sezione “Installer” consente di configurare il pacchetto da generare indicando i dati del server MySQL di destinazione, anche questa parte può essere ignorata in quanto i medesimi parametri saranno specificabili al momento della clonazione vera e propria.

Installer

Una volta terminata la fase di configurazione, cliccando sul pulsante “Successivo” si può passare a quella di scansione del sistema che permette di capire se il sito di origine non presenta delle controindicazioni alla duplicazione, come per esempio una dimensione eccessiva dell’archivio composto da file e database che potrebbe determinare un timeout e quindi un’estrazione incompleta dei dati.

Scansiopne del sistema

Se la scansione non dovesse evidenziare delle criticità si potrà cliccare sul pulsante “Compila” e procedere alla creazione del pacchetto che avviene in modalità completamente automatica.

Compilazione

La compilazione produce due output: un file per l’installazione del pacchetto (“installer.php”) e l’archivio contenente file e database.

Stato della compilazione

Questi ultimi devono essere scaricati e successivamente uploadati nello spazio FTP del server in cui si desidera installare il clone del proprio sito WordPress.

Installazione del clone

Per installare il pacchetto creato in precedenza è necessario aprire il file “installer.php” tramite il proprio browser Web. Se per esempio stiamo lavorando sul sottodominio “testwww.mrw.it” l’URL da digitare sarà “https://testwww.mrw.it/installer.php”. Il sistema effettuerà un controllo per verificare che l’ambiente di destinazione sia compatibile con l’installazione e se l’esito dovesse essere positivo si potrà cliccare su “Next”.

Installazione del sito clone

Fatto questo inizia la fase di estrazione dei file dall’archivio che potrebbe avere una durata variabile a seconda della grandezza di quest’ultimo.

Step 1 di 4

Una volta terminata l’estrazione, il sistema richiederà di indicare i parametri relativi alla connessione con il database in cui si desidera importare i dati. Prima di procedere è necessario superare una fase di validazione (pulsante “Test database”) durante la quale verrà operata la verifica dei requisiti necessari per l’installazione.

Step 2 di 4

Se la verifica dovesse avere successo si potrà cliccare su “Next” tenendo conto che tutti i dati eventualmente contenuti in precedenza nel database scelto verranno rimossi definitivamente.

Si passerà quindi alla fase di aggiornamento dei dati relativi all’istanza di WordPress da generare. In questo caso però, a parte un’eventuale modifica al parametro relativo al titolo, il sistema dovrebbe essere in grado di identificare autonomamente sia l’URL del sito che il percorso di destinazione nel server ospitante.

Step 3 di 4

Cliccando per l’ultima volta sul pulsante “Next” la clonazione sarà conclusa e l’installer di Duplicator presenterà da subito un collegamento alla pagina di login di WordPress tramite la quale autenticarsi con gli stessi dati del sito Web clonato.

Step 4 di 4

La prima autenticazione permette anche di rimuovere tutti i file precedentemente utilizzati per la procedura di installazione.

Rimozione file di installazione

In questo modo si può avere la garanzia che tale operazione non potrà essere ripetuta causando la sovrascrittura di eventuali aggiornamenti del sito Web.

Altri contenuti interessanti

Pubblicità
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.

Leggi anche...

Rimuovere “category” dai link e dai titoli delle categorie di WordPress

Quando si crea un sito con WordPress, la struttura...

Come eliminare la categoria “Senza Categoria” in WordPress

Se hai un sito WordPress, probabilmente hai notato che...

WordPress lento? La guida definitiva per velocizzare il tuo sito

Quando si tratta di gestire un sito web, la velocità...

Sito WordPress bloccato in manutenzione: come risolvere?

Un problema comune che si pò incontrare durante la...

Disabilitare i commenti in WordPress

Una delle caratteristiche da sempre più apprezzate nei siti...

WordPress: Custom Post Type, cosa sono e come crearli

Nonostante qualcuno pensi che Wordpress sia una semplice piattaforma...
Pubblicità