Site icon Tosolini.info

Clonare WordPress in Linux Server

La clonazione di un sito “motorizzatoWordPress non è poi una condizione del tutto inusuale, per parecchi motivi. Ad esempio la creazione di una ambiente di test per testare un nuovo tema grafico o qualche plugin; perché il cliente ha pasticciato e stiamo cercando di rimediare effettuando le operazioni di rimessa in opera su un clone; o più semplicemente stiamo cambiando server.

Che cosa occorre?

Innanzitutto occorre MySQL con una nuova istanza del database e nuove credenziali (o per lo meno che quelle vecchie possano funzionare sulla nuova istanza). Se avete phpMyAdmin sarà molto semplice effettuare questa operazione. Selezionato il database di produzione dovremo andare sotto la voce (comandi tabellari in alto) Operations e quindi scegliere “Copy database to:” dove andremo a indicare nella casella di input il nuovo nome. Sinceratevi che tra le opzioni sia spuntata “Create Database before copying“. Il nuovo database sarà creato portandosi dietro le medesime credenziali.

Utilizzando la linea di comando le cose sono più “tecniche”. Per prima cosa prepariamo un db vuoto che chiameremo clone:

mysql --user=username --password=passwd -e ‘CREATE DATABASE clone;’

Arrivati a questo punto è necessario effettuare la clonazione del database esistente, per comodità nell’esempio lo chiameremo “workingdb”; ma dovete ovviamente adattarlo al vostro contesto. La procedura consiste nell’effettuare un dump della versione da copiare per iniettarla nel clone:

mysqldump --user=username --password=passwd workingdb | mysql --user=username --password=passwd clone

Smarcato il capitolo database, occorre avere pronto il DNS che ci servirà per visionare il risultato della clonazione. Qui ci sono sostanzialmente due strade, la prima è creare un nuovo CNAME record, ad esempio se avete il sito miosito.com potrete creare clone.miosito.com. Non mi addentro in questa sede sulla creazione del CNAME, ovviamente dovrete avere completo accesso al vostro DNS per effettuare tale operazione. La seconda opzione è quella di “ingannare” il vostro sistema operativo, fornendo nel file hosts ( /etc/hosts per linux e macOS c:/windows/system32/drivers/etc/hosts per Windows ) la coppia indirizzo IP e DNS. Si tratta di aprire il file con un editor di testo e aggiungere, in modo simile ai dati già presenti, l’indirizzo IP del vostro server seguito dal nome DNS (separati da uno spazio), o i nomi se sono più di uno, affinché vengano risolti nel modo voluto. Da tenere conto che se volete effettuare la clonazione nel medesimo server (e quindi lo stesso IP) dovrete per forza di cose utilizzare un CNAME, ad esempio:

172.12.0.0 miosito.com clone.miosito.com

Terzo attore da prepare è Apache. Deve essere presente un vhost che intercetti le chiamate per il dominio. Come citato poc’anzi Apache non permette di avere due istanze vhost con il medesimo nome, per cui dovrete prepararne una specifica per clone.miosito.com. In questo caso avrete già presente il file di configurazione (generalmente sotto /etc/apache2/vhost-available) di miosito.com, basterà copiarla

cp miosito.com.conf clone.miosito.com.conf

a questo punto dovremo istruire  Apache2 ad attivare il nuovo vhost e quindi ricaricare la configurazione:

a2ensite clone.miosito.com.conf service apache2 reload

Clonazione.

Partiamo ad effettuare la clonazione, qui abbiamo due scenari possibili. La clonazione nello stesso server o su un nuovo server.

Partendo con il primo scenario, dovremo effettuare un semplicissimo copia. Partiamo dall’assunto che i file siano in /var/www procederemo con:

cp -a /var/www/miosito /var/www/clone

con l’opzione -a avremo modo di copiare oltre che in modo recursivo le varie sottodirectory, anche di mantenere i permessi e le proprietà dei file. A questo punto abbiamo una copia del sito, non ci resta che aggiornare il puntamento del database andando a modificare il file /var/www/clone/wp-config.php nella prima sezione.

Nello scenario di una copia presso un altro server ci andremo ad avvalere del comando scp:

scp -Cpr /var/www/miosito user@nuovoserver:/var/www/clone

Nel nuovo server dovrete avere un accesso ssh. Se utilizzate esclusivamente le chiavi, dovrete aggiungere a quanto sopra l’opzione -i seguita dalla path della chiave. Anche in questo caso si dovrà aggiornare i dati relativi al MySQL nel file wp-config.php sul nuovo server come descritto in precedenza.

A questo punto dovremo essere in grado attraverso il nostro browser di accedere alle nuove istanze clonate. Per prima cosa sarà necessario entrare nella sezione amministrativa di WordPress e cambiare le URL in impostazioni affinché i link interni e i permalink vengano mostrati correttamente.

Exit mobile version