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.
Indice
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.
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โ.
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:
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.
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.
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).
ร 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โ.
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.
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.
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.
La compilazione produce due output: un file per lโinstallazione del pacchetto (โinstaller.phpโ) e lโarchivio contenente file e database.
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โ.
Fatto questo inizia la fase di estrazione dei file dallโarchivio che potrebbe avere una durata variabile a seconda della grandezza di questโultimo.
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.
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.
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.
La prima autenticazione permette anche di rimuovere tutti i file precedentemente utilizzati per la procedura 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.