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.

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...

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...

Mettere in sicurezza WordPress: proteggere la cartella wp-admin da accessi non autorizzati

Vediamo come implementare una maggior sicurezza all'interno del nostro...

Mettere WordPress in manutenzione senza usare plugin

Quando si deve mettere in manutenzione un blog basato...
Pubblicitร